Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: Author: Joachim Faulhaber Chris@16: Copyright (c) 2009-2011: Joachim Faulhaber Chris@16: +------------------------------------------------------------------------------+ Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENCE.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt) Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: #ifndef BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225 Chris@16: #define BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225 Chris@16: Chris@16: #include Chris@16: Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: | You can choose an implementation for the basic set and map classes. | Chris@16: | Select at most ONE of the following defines to change the default | Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: Chris@16: //#define ICL_USE_STD_IMPLEMENTATION // Default Chris@16: //#define ICL_USE_BOOST_MOVE_IMPLEMENTATION // Boost.Container Chris@16: // ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION // No longer available Chris@16: Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: | NO define or ICL_USE_STD_IMPLEMENTATION: Choose std::set and std::map from | Chris@16: | your local std implementation as implementing containers (DEFAULT). | Chris@16: | Whether move semantics is available depends on the version of your local | Chris@16: | STL. | Chris@16: | | Chris@16: | ICL_USE_BOOST_MOVE_IMPLEMENTATION: | Chris@16: | Use move aware containers from boost::container. | Chris@16: | | Chris@16: | NOTE: ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION: This define has been | Chris@16: | available until boost version 1.48.0 and is no longer supported. | Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: Chris@16: #if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION) Chris@16: # define ICL_IMPL_SPACE boost::container Chris@16: #elif defined(ICL_USE_STD_IMPLEMENTATION) Chris@16: # define ICL_IMPL_SPACE std Chris@16: #else Chris@16: # define ICL_IMPL_SPACE std Chris@16: #endif Chris@16: Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: | MEMO 2012-12-30: Due to problems with new c++11 compilers and their | Chris@16: | implementation of rvalue references, ICL's move implementation will be | Chris@16: | disabled for some new compilers for version 1.53. | Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) Chris@16: # define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES Chris@101: //#elif defined(__clang__) Chris@101: //# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES Chris@101: //#elif (defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) Chris@101: //# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES Chris@16: #endif Chris@16: Chris@16: #include Chris@16: Chris@16: #endif // BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225 Chris@16: Chris@16: