1 /*-----------------------------------------------------------------------------+ 2 Author: Joachim Faulhaber 3 Copyright (c) 2009-2011: Joachim Faulhaber 4 +------------------------------------------------------------------------------+ 5 Distributed under the Boost Software License, Version 1.0. 6 (See accompanying file LICENCE.txt or copy at 7 http://www.boost.org/LICENSE_1_0.txt) 8 +-----------------------------------------------------------------------------*/ 9 #ifndef BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225 10 #define BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225 11 12 #include <boost/icl/detail/boost_config.hpp> 13 14 /*-----------------------------------------------------------------------------+ 15 | You can choose an implementation for the basic set and map classes. | 16 | Select at most ONE of the following defines to change the default | 17 +-----------------------------------------------------------------------------*/ 18 19 //#define ICL_USE_STD_IMPLEMENTATION // Default 20 //#define ICL_USE_BOOST_MOVE_IMPLEMENTATION // Boost.Container 21 // ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION // No longer available 22 23 /*-----------------------------------------------------------------------------+ 24 | NO define or ICL_USE_STD_IMPLEMENTATION: Choose std::set and std::map from | 25 | your local std implementation as implementing containers (DEFAULT). | 26 | Whether move semantics is available depends on the version of your local | 27 | STL. | 28 | | 29 | ICL_USE_BOOST_MOVE_IMPLEMENTATION: | 30 | Use move aware containers from boost::container. | 31 | | 32 | NOTE: ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION: This define has been | 33 | available until boost version 1.48.0 and is no longer supported. | 34 +-----------------------------------------------------------------------------*/ 35 36 #if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION) 37 # define ICL_IMPL_SPACE boost::container 38 #elif defined(ICL_USE_STD_IMPLEMENTATION) 39 # define ICL_IMPL_SPACE std 40 #else 41 # define ICL_IMPL_SPACE std 42 #endif 43 44 /*-----------------------------------------------------------------------------+ 45 | MEMO 2012-12-30: Due to problems with new c++11 compilers and their | 46 | implementation of rvalue references, ICL's move implementation will be | 47 | disabled for some new compilers for version 1.53. | 48 +-----------------------------------------------------------------------------*/ 49 #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) 50 # define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES 51 //#elif defined(__clang__) 52 //# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES 53 //#elif (defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) 54 //# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES 55 #endif 56 57 #include <boost/move/move.hpp> 58 59 #endif // BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225 60 61 62