• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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