From: Douglas Gregor
-
Use __has_feature(cxx_decltype) or -__has_extension(cxx_decltype) to determine if support for the -decltype() specifier is enabled.
-Use __has_feature(cxx_access_control_sfinae) or __has_extension(cxx_access_control_sfinae) to determine whether access-control errors (e.g., calling a private constructor) are considered to be template argument deduction errors (aka SFINAE errors), per C++ DR1170.
@@ -460,6 +463,18 @@ C++0x's alias declarations and alias templates is enabled. __has_extension(cxx_attributes) to determine if support for attribute parsing with C++0x's square bracket notation is enabled. +Use __has_feature(cxx_constexpr) to determine if support +for generalized constant expressions (e.g., constexpr) is +enabled. Clang does not currently implement this feature.
+ +Use __has_feature(cxx_decltype) or +__has_extension(cxx_decltype) to determine if support for the +decltype() specifier is enabled.
+Use __has_feature(cxx_default_function_template_args) or @@ -477,18 +492,45 @@ support for delegating constructors is enabled.
__has_extension(cxx_deleted_functions) to determine if support for deleted function definitions (with = delete) is enabled. +Use __has_feature(cxx_explicit_conversions) to determine if support for explicit conversion functions is enabled.
+Use __has_feature(cxx_generalized_initializers) to determine if support for generalized initializers (using braced lists and -std::initializer_list) is enabled. clang does not currently implement -this feature. +std::initializer_list) is enabled. Clang does not currently implement +this feature.
+ +Use __has_feature(cxx_implicit_moves) to determine if Clang will implicitly generate move constructors and move assignment operators where needed. Clang does not currently implement this feature.
+ +Use __has_feature(cxx_inheriting_constructors) to determine if support for inheriting constructors is enabled. Clang does not currently implement this feature.
+ +Use __has_feature(cxx_inline_namespaces) or +__has_extension(cxx_inline_namespaces) to determine if support for +inline namespaces is enabled.
Use __has_feature(cxx_lambdas) or __has_extension(cxx_lambdas) to determine if support for lambdas -is enabled. clang does not currently implement this feature.
+is enabled. Clang does not currently implement this feature. + +Use __has_feature(cxx_noexcept) or +__has_extension(cxx_noexcept) to determine if support for noexcept +exception specifications is enabled.
+ +Use __has_feature(cxx_nonstatic_member_init) to determine whether in-class initialization of non-static data members is enabled.
Use __has_feature(cxx_raw_string_literals) to determine if support for raw string literals (e.g., R"foo\bar") is enabled.
+Use __has_feature(cxx_rvalue_references) or @@ -534,17 +579,11 @@ compile-time assertions using static_assert is enabled.
supported using the auto specifier. If this is disabled, auto will instead be a storage class specifier, as in C or C++98. -Use __has_feature(cxx_variadic_templates) or -__has_extension(cxx_variadic_templates) to determine if support -for variadic templates is enabled.
- -Use __has_feature(cxx_inline_namespaces) or -__has_extension(cxx_inline_namespaces) to determine if support for -inline namespaces is enabled.
+Use __has_feature(cxx_strong_enums) or +__has_extension(cxx_strong_enums) to determine if support for +strongly typed, scoped enumerations is enabled.
Use __has_feature(cxx_unicode_literals) to determine if +support for Unicode string literals is enabled.
-Use __has_feature(cxx_noexcept) or -__has_extension(cxx_noexcept) to determine if support for noexcept -exception specifications is enabled.
+Use __has_feature(cxx_unrestricted_unions) to determine if support for unrestricted unions is enabled. Clang does not currently support this feature.
-Use __has_feature(cxx_strong_enums) or -__has_extension(cxx_strong_enums) to determine if support for -strongly typed, scoped enumerations is enabled.
+Use __has_feature(cxx_user_literals) to determine if support for user-defined literals is enabled. Clang does not currently support this feature.
+ +Use __has_feature(cxx_variadic_templates) or +__has_extension(cxx_variadic_templates) to determine if support +for variadic templates is enabled.