]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/config/include/boost/config/stdlib/libcpp.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / config / include / boost / config / stdlib / libcpp.hpp
CommitLineData
7c673cae
FG
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#endif
33
34#if __cplusplus < 201103
35# define BOOST_NO_CXX11_HDR_ARRAY
36# define BOOST_NO_CXX11_HDR_CODECVT
37# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
38# define BOOST_NO_CXX11_HDR_FORWARD_LIST
39# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
40# define BOOST_NO_CXX11_HDR_MUTEX
41# define BOOST_NO_CXX11_HDR_RANDOM
42# define BOOST_NO_CXX11_HDR_RATIO
43# define BOOST_NO_CXX11_HDR_REGEX
44# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
45# define BOOST_NO_CXX11_HDR_THREAD
46# define BOOST_NO_CXX11_HDR_TUPLE
47# define BOOST_NO_CXX11_HDR_TYPEINDEX
48# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
49# define BOOST_NO_CXX11_HDR_UNORDERED_SET
50# define BOOST_NO_CXX11_NUMERIC_LIMITS
51# define BOOST_NO_CXX11_ALLOCATOR
52# define BOOST_NO_CXX11_SMART_PTR
53# define BOOST_NO_CXX11_HDR_FUNCTIONAL
54# define BOOST_NO_CXX11_STD_ALIGN
55# define BOOST_NO_CXX11_ADDRESSOF
56# define BOOST_NO_CXX11_HDR_ATOMIC
57# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
58# define BOOST_NO_CXX11_HDR_CHRONO
59# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
60# define BOOST_NO_CXX11_HDR_FUTURE
61#elif _LIBCPP_VERSION < 3700
62//
63// These appear to be unusable/incomplete so far:
64//
65# define BOOST_NO_CXX11_HDR_ATOMIC
66# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
67# define BOOST_NO_CXX11_HDR_CHRONO
68# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
69# define BOOST_NO_CXX11_HDR_FUTURE
70#endif
71
72
73#if _LIBCPP_VERSION < 3700
74// libc++ uses a non-standard messages_base
75#define BOOST_NO_STD_MESSAGES
76// C++17 features
77#define BOOST_NO_CXX17_STD_INVOKE
78#endif
79
80#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
81// This is a bit of a sledgehammer, because really it's just libc++abi that has no
82// support for thread_local, leading to linker errors such as
83// "undefined reference to `__cxa_thread_atexit'". It is fixed in the
84// most recent releases of libc++abi though...
85# define BOOST_NO_CXX11_THREAD_LOCAL
86#endif
87
88#if defined(__has_include)
89#if !__has_include(<shared_mutex>)
90# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
91#elif __cplusplus <= 201103
92# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
93#endif
94#elif __cplusplus < 201402
95# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
96#endif
97
98// --- end ---