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 #endif 57 58 // 59 // These appear to be unusable/incomplete so far: 60 // 61 # define BOOST_NO_CXX11_HDR_CHRONO 62 # define BOOST_NO_CXX11_HDR_FUTURE 63 # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 64 # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 65 # define BOOST_NO_CXX11_HDR_ATOMIC 66 67 // libc++ uses a non-standard messages_base 68 #define BOOST_NO_STD_MESSAGES 69 70 #if defined(__has_include) 71 #if !__has_include(<shared_mutex>) 72 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 73 #elif __cplusplus <= 201103 74 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 75 #endif 76 #elif __cplusplus < 201402 77 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 78 #endif 79 80 // --- end --- 81