libcpp.hpp
Go to the documentation of this file.
1 // (C) Copyright Christopher Jefferson 2011.
2 // Use, modification and distribution are subject to the
3 // Boost Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // See http://www.boost.org for most recent version.
7 
8 // config for libc++
9 // Might need more in here later.
10 
11 #if !defined(_LIBCPP_VERSION)
12 # include <ciso646>
13 # if !defined(_LIBCPP_VERSION)
14 # error "This is not libc++!"
15 # endif
16 #endif
17 
18 #define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
19 
20 #define BOOST_HAS_THREADS
21 
22 #ifdef _LIBCPP_HAS_NO_VARIADICS
23 # define BOOST_NO_CXX11_HDR_TUPLE
24 #endif
25 
26 // BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
27 // allocator model. The C++11 allocator model requires a conforming
28 // std::allocator_traits which is only possible with C++11 template
29 // aliases since members rebind_alloc and rebind_traits require it.
30 #if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
31 # define BOOST_NO_CXX11_ALLOCATOR
32 # define BOOST_NO_CXX11_POINTER_TRAITS
33 #endif
34 
35 #if __cplusplus < 201103
36 //
37 // These two appear to be somewhat useable in C++03 mode, there may be others...
38 //
39 //# define BOOST_NO_CXX11_HDR_ARRAY
40 //# define BOOST_NO_CXX11_HDR_FORWARD_LIST
41 
42 # define BOOST_NO_CXX11_HDR_CODECVT
43 # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
44 # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
45 # define BOOST_NO_CXX11_HDR_MUTEX
46 # define BOOST_NO_CXX11_HDR_RANDOM
47 # define BOOST_NO_CXX11_HDR_RATIO
48 # define BOOST_NO_CXX11_HDR_REGEX
49 # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
50 # define BOOST_NO_CXX11_HDR_THREAD
51 # define BOOST_NO_CXX11_HDR_TUPLE
52 # define BOOST_NO_CXX11_HDR_TYPEINDEX
53 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
54 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
55 # define BOOST_NO_CXX11_NUMERIC_LIMITS
56 # define BOOST_NO_CXX11_ALLOCATOR
57 # define BOOST_NO_CXX11_POINTER_TRAITS
58 # define BOOST_NO_CXX11_SMART_PTR
59 # define BOOST_NO_CXX11_HDR_FUNCTIONAL
60 # define BOOST_NO_CXX11_STD_ALIGN
61 # define BOOST_NO_CXX11_ADDRESSOF
62 # define BOOST_NO_CXX11_HDR_ATOMIC
63 # define BOOST_NO_CXX11_ATOMIC_SMART_PTR
64 # define BOOST_NO_CXX11_HDR_CHRONO
65 # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
66 # define BOOST_NO_CXX11_HDR_FUTURE
67 #elif _LIBCPP_VERSION < 3700
68 //
69 // These appear to be unusable/incomplete so far:
70 //
71 # define BOOST_NO_CXX11_HDR_ATOMIC
72 # define BOOST_NO_CXX11_ATOMIC_SMART_PTR
73 # define BOOST_NO_CXX11_HDR_CHRONO
74 # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
75 # define BOOST_NO_CXX11_HDR_FUTURE
76 #endif
77 
78 
79 #if _LIBCPP_VERSION < 3700
80 // libc++ uses a non-standard messages_base
81 #define BOOST_NO_STD_MESSAGES
82 #endif
83 
84 // C++14 features
85 #if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L)
86 # define BOOST_NO_CXX14_STD_EXCHANGE
87 #endif
88 
89 // C++17 features
90 #if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L)
91 # define BOOST_NO_CXX17_STD_INVOKE
92 #endif
93 #if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L)
94 # define BOOST_NO_CXX17_STD_APPLY
95 #endif
96 #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
97 # define BOOST_NO_AUTO_PTR
98 #endif
99 #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE)
100 # define BOOST_NO_CXX98_RANDOM_SHUFFLE
101 #endif
102 #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
103 # define BOOST_NO_CXX98_BINDERS
104 #endif
105 
106 #if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
107 // This is a bit of a sledgehammer, because really it's just libc++abi that has no
108 // support for thread_local, leading to linker errors such as
109 // "undefined reference to `__cxa_thread_atexit'". It is fixed in the
110 // most recent releases of libc++abi though...
111 # define BOOST_NO_CXX11_THREAD_LOCAL
112 #endif
113 
114 #if defined(__has_include)
115 #if !__has_include(<shared_mutex>)
116 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
117 #elif __cplusplus <= 201103
118 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
119 #endif
120 #elif __cplusplus < 201402
121 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
122 #endif
123 
124 // --- end ---


librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:47:21