Update Clang configuration to reflect improved C++0x support in Clang.

[SVN r68659]
This commit is contained in:
Douglas Gregor
2011-02-05 20:39:52 +00:00
parent 2ea9ef4841
commit 66b9affdd8

View File

@@ -13,8 +13,7 @@
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
#if __has_feature(cxx_rtti) #if !__has_feature(cxx_rtti)
#else
# define BOOST_NO_RTTI # define BOOST_NO_RTTI
#endif #endif
@@ -24,35 +23,57 @@
#define BOOST_HAS_NRVO #define BOOST_HAS_NRVO
// NOTE: Clang's C++0x support is not worth detecting. However, it // Clang supports "long long" in all compilation modes.
// supports both extern templates and "long long" even in C++98/03
// mode.
#define BOOST_NO_AUTO_DECLARATIONS #define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS #define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T #define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T #define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS #define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR #define BOOST_NO_CONSTEXPR
#if !__has_feature(cxx_decltype)
# define BOOST_NO_DECLTYPE # define BOOST_NO_DECLTYPE
#endif
#define BOOST_NO_DEFAULTED_FUNCTIONS #define BOOST_NO_DEFAULTED_FUNCTIONS
#if !__has_feature(cxx_deleted_functions)
# define BOOST_NO_DELETED_FUNCTIONS # define BOOST_NO_DELETED_FUNCTIONS
#endif
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#if !__has_feature(cxx_default_function_template_args)
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS #define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR #define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS #define BOOST_NO_RAW_LITERALS
#if !__has_feature(cxx_rvalue_references)
# define BOOST_NO_RVALUE_REFERENCES # define BOOST_NO_RVALUE_REFERENCES
#endif
#if !__has_feature(cxx_strong_enums)
# define BOOST_NO_SCOPED_ENUMS # define BOOST_NO_SCOPED_ENUMS
#endif
#if !__has_feature(cxx_static_assert)
# define BOOST_NO_STATIC_ASSERT # define BOOST_NO_STATIC_ASSERT
#endif
#define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
// HACK: Clang does support extern templates, but Boost's test for #if !__has_feature(cxx_variadic_templates)
// them is wrong. # define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_EXTERN_TEMPLATE #endif
// Clang always supports variadic macros
// Clang always supports extern templates
#ifndef BOOST_COMPILER #ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__ # define BOOST_COMPILER "Clang version " __clang_version__