1 // (C) Copyright Douglas Gregor 2010
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // See http://www.boost.org for most recent version.
9 // Clang compiler setup.
11 #if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
13 # define BOOST_NO_EXCEPTIONS
16 #if __has_feature(cxx_rtti)
18 # define BOOST_NO_RTTI
22 # define BOOST_HAS_MS_INT64
25 #define BOOST_HAS_NRVO
27 // NOTE: Clang's C++0x support is not worth detecting. However, it
28 // supports both extern templates and "long long" even in C++98/03
30 #define BOOST_NO_AUTO_DECLARATIONS
31 #define BOOST_NO_AUTO_MULTIDECLARATIONS
32 #define BOOST_NO_CHAR16_T
33 #define BOOST_NO_CHAR32_T
34 #define BOOST_NO_CONCEPTS
35 #define BOOST_NO_CONSTEXPR
36 #define BOOST_NO_DECLTYPE
37 #define BOOST_NO_DEFAULTED_FUNCTIONS
38 #define BOOST_NO_DELETED_FUNCTIONS
39 #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
40 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
41 #define BOOST_NO_INITIALIZER_LISTS
42 #define BOOST_NO_LAMBDAS
43 #define BOOST_NO_NULLPTR
44 #define BOOST_NO_RAW_LITERALS
45 #define BOOST_NO_RVALUE_REFERENCES
46 #define BOOST_NO_SCOPED_ENUMS
47 #define BOOST_NO_STATIC_ASSERT
48 #define BOOST_NO_TEMPLATE_ALIASES
49 #define BOOST_NO_UNICODE_LITERALS
50 #define BOOST_NO_VARIADIC_TEMPLATES
52 // HACK: Clang does support extern templates, but Boost's test for
54 #define BOOST_NO_EXTERN_TEMPLATE
56 #ifndef BOOST_COMPILER
57 # define BOOST_COMPILER "Clang version " __clang_version__
60 // Macro used to identify the Clang compiler.