114 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			114 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | //  (C) Copyright Christopher Jefferson 2011. | ||
|  | //  Use, modification and distribution are subject to the | ||
|  | //  Boost Software License, Version 1.0. (See accompanying file | ||
|  | //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|  | 
 | ||
|  | //  See http://www.boost.org for most recent version. | ||
|  | 
 | ||
|  | //  config for libc++ | ||
|  | //  Might need more in here later. | ||
|  | 
 | ||
|  | #if !defined(_LIBCPP_VERSION) | ||
|  | #  include <ciso646> | ||
|  | #  if !defined(_LIBCPP_VERSION) | ||
|  | #      error "This is not libc++!" | ||
|  | #  endif | ||
|  | #endif | ||
|  | 
 | ||
|  | #define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) | ||
|  | 
 | ||
|  | #define BOOST_HAS_THREADS | ||
|  | 
 | ||
|  | #ifdef _LIBCPP_HAS_NO_VARIADICS | ||
|  | #    define BOOST_NO_CXX11_HDR_TUPLE | ||
|  | #endif | ||
|  | 
 | ||
|  | // BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11 | ||
|  | // allocator model. The C++11 allocator model requires a conforming | ||
|  | // std::allocator_traits which is only possible with C++11 template | ||
|  | // aliases since members rebind_alloc and rebind_traits require it. | ||
|  | #if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES) | ||
|  | #    define BOOST_NO_CXX11_ALLOCATOR | ||
|  | #endif | ||
|  | 
 | ||
|  | #if __cplusplus < 201103 | ||
|  | // | ||
|  | // These two appear to be somewhat useable in C++03 mode, there may be others... | ||
|  | // | ||
|  | //#  define BOOST_NO_CXX11_HDR_ARRAY | ||
|  | //#  define BOOST_NO_CXX11_HDR_FORWARD_LIST | ||
|  | 
 | ||
|  | #  define BOOST_NO_CXX11_HDR_CODECVT | ||
|  | #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE | ||
|  | #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST | ||
|  | #  define BOOST_NO_CXX11_HDR_MUTEX | ||
|  | #  define BOOST_NO_CXX11_HDR_RANDOM | ||
|  | #  define BOOST_NO_CXX11_HDR_RATIO | ||
|  | #  define BOOST_NO_CXX11_HDR_REGEX | ||
|  | #  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR | ||
|  | #  define BOOST_NO_CXX11_HDR_THREAD | ||
|  | #  define BOOST_NO_CXX11_HDR_TUPLE | ||
|  | #  define BOOST_NO_CXX11_HDR_TYPEINDEX | ||
|  | #  define BOOST_NO_CXX11_HDR_UNORDERED_MAP | ||
|  | #  define BOOST_NO_CXX11_HDR_UNORDERED_SET | ||
|  | #  define BOOST_NO_CXX11_NUMERIC_LIMITS | ||
|  | #  define BOOST_NO_CXX11_ALLOCATOR | ||
|  | #  define BOOST_NO_CXX11_SMART_PTR | ||
|  | #  define BOOST_NO_CXX11_HDR_FUNCTIONAL | ||
|  | #  define BOOST_NO_CXX11_STD_ALIGN | ||
|  | #  define BOOST_NO_CXX11_ADDRESSOF | ||
|  | #  define BOOST_NO_CXX11_HDR_ATOMIC | ||
|  | #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR | ||
|  | #  define BOOST_NO_CXX11_HDR_CHRONO | ||
|  | #  define BOOST_NO_CXX11_HDR_TYPE_TRAITS | ||
|  | #  define BOOST_NO_CXX11_HDR_FUTURE | ||
|  | #elif _LIBCPP_VERSION < 3700 | ||
|  | // | ||
|  | // These appear to be unusable/incomplete so far: | ||
|  | // | ||
|  | #  define BOOST_NO_CXX11_HDR_ATOMIC | ||
|  | #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR | ||
|  | #  define BOOST_NO_CXX11_HDR_CHRONO | ||
|  | #  define BOOST_NO_CXX11_HDR_TYPE_TRAITS | ||
|  | #  define BOOST_NO_CXX11_HDR_FUTURE | ||
|  | #endif | ||
|  | 
 | ||
|  | 
 | ||
|  | #if _LIBCPP_VERSION < 3700 | ||
|  | // libc++ uses a non-standard messages_base | ||
|  | #define BOOST_NO_STD_MESSAGES | ||
|  | #endif | ||
|  | 
 | ||
|  | // C++14 features | ||
|  | #if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L) | ||
|  | #  define BOOST_NO_CXX14_STD_EXCHANGE | ||
|  | #endif | ||
|  | 
 | ||
|  | // C++17 features | ||
|  | #if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L) | ||
|  | #  define BOOST_NO_CXX17_STD_INVOKE | ||
|  | #endif | ||
|  | #if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L) | ||
|  | #  define BOOST_NO_CXX17_STD_APPLY | ||
|  | #endif | ||
|  | 
 | ||
|  | #if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) | ||
|  | // This is a bit of a sledgehammer, because really it's just libc++abi that has no | ||
|  | // support for thread_local, leading to linker errors such as | ||
|  | // "undefined reference to `__cxa_thread_atexit'".  It is fixed in the | ||
|  | // most recent releases of libc++abi though... | ||
|  | #  define BOOST_NO_CXX11_THREAD_LOCAL | ||
|  | #endif | ||
|  | 
 | ||
|  | #if defined(__has_include) | ||
|  | #if !__has_include(<shared_mutex>) | ||
|  | #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX | ||
|  | #elif __cplusplus <= 201103 | ||
|  | #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX | ||
|  | #endif | ||
|  | #elif __cplusplus < 201402 | ||
|  | #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX | ||
|  | #endif | ||
|  | 
 | ||
|  | //  --- end --- |