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