]> git.donarmstrong.com Git - rsem.git/blob - boost/config/compiler/clang.hpp
85f4484d699bcaaa28046d610abc451da7c8b3be
[rsem.git] / boost / config / compiler / clang.hpp
1 // (C) Copyright Douglas Gregor 2010
2 //
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)
6
7 //  See http://www.boost.org for most recent version.
8
9 // Clang compiler setup.
10
11 #if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
12 #else
13 #  define BOOST_NO_EXCEPTIONS
14 #endif
15
16 #if __has_feature(cxx_rtti)
17 #else
18 #  define BOOST_NO_RTTI
19 #endif
20
21 #if defined(__int64)
22 #  define BOOST_HAS_MS_INT64
23 #endif
24
25 #define BOOST_HAS_NRVO
26
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
29 // mode.
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
51
52 // HACK: Clang does support extern templates, but Boost's test for
53 // them is wrong.
54 #define BOOST_NO_EXTERN_TEMPLATE
55
56 #ifndef BOOST_COMPILER
57 #  define BOOST_COMPILER "Clang version " __clang_version__
58 #endif
59
60 // Macro used to identify the Clang compiler.
61 #define BOOST_CLANG 1
62