From: David Blaikie
This restriction does not apply in Objective-C++. However, -nontrivally ownership-qualified types are considered non-POD: in C++0x +nontrivally ownership-qualified types are considered non-POD: in C++11 terms, they are not trivially default constructible, copy constructible, move constructible, copy assignable, move assignable, or destructible. It is a violation of C++ One Definition Rule to use diff --git a/docs/InternalsManual.html b/docs/InternalsManual.html index 2dffb10740..c22b1e8d91 100644 --- a/docs/InternalsManual.html +++ b/docs/InternalsManual.html @@ -427,10 +427,10 @@ the problem. For example, it might add the missing semicolon at the end of the statement or rewrite the use of a deprecated construct into something more palatable. Here is one such example from the C++ front end, where we warn about the right-shift operator changing -meaning from C++98 to C++0x:
+meaning from C++98 to C++11:-test.cpp:3:7: warning: use of right-shift operator ('>>') in template argument will require parentheses in C++0x +test.cpp:3:7: warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11 A<100 >> 2> *a; ^ ( ) @@ -1323,7 +1323,7 @@ extern "C" {The transparent
DeclContexts
are:
enum Color { Red, @@ -1354,7 +1354,7 @@ LookupTable LT; LT.Vector = 0; // Okay: finds Vector inside the unnamed union
namespace mylib { inline namespace debug { @@ -1736,7 +1736,7 @@ to subsequent declarations of the same name.Spellings lists the strings that can appear in __attribute__((here)) or [[here]]. All such strings -will be synonymous. If you want to allow the [[]] C++0x +will be synonymous. If you want to allow the [[]] C++11 syntax, you have to define a list of Namespaces, which will let users write [[namespace:spelling]]. Using the empty string for a namespace will allow users to write just the spelling diff --git a/docs/LanguageExtensions.html b/docs/LanguageExtensions.html index c4a8047f1f..becdbfac4d 100644 --- a/docs/LanguageExtensions.html +++ b/docs/LanguageExtensions.html @@ -36,39 +36,40 @@
The features listed below are slated for inclusion in the upcoming -C++0x standard. As a result, all these features are enabled -with the -std=c++0x option when compiling C++ code.
+C++11 standard. As a result, all these features are enabled +with the -std=c++11 option when compiling C++ code. -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.
-Use __has_feature(cxx_alias_templates) or __has_extension(cxx_alias_templates) to determine if support for -C++0x's alias declarations and alias templates is enabled.
+C++11's alias declarations and alias templates is enabled. -Use __has_feature(cxx_alignas) or __has_extension(cxx_alignas) to determine if support for alignment specifiers using alignas is enabled.
-Use __has_feature(cxx_attributes) or __has_extension(cxx_attributes) to determine if support for attribute -parsing with C++0x's square bracket notation is enabled.
+parsing with C++11'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 __has_extension(cxx_default_function_template_args) to determine if support for default template arguments in function templates is enabled.
-Use __has_feature(cxx_delegating_constructors) to determine if support for delegating constructors is enabled.
-Use __has_feature(cxx_deleted_functions) or __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.
-Use __has_feature(cxx_implicit_moves) to determine if Clang will implicitly generate move constructors and move assignment operators where needed.
-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.
-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_nullptr) or __has_extension(cxx_nullptr) to determine if support for nullptr is enabled.
-Use __has_feature(cxx_override_control) or __has_extension(cxx_override_control) to determine if support for the override control keywords is enabled.
-Use __has_feature(cxx_reference_qualified_functions) or
__has_extension(cxx_reference_qualified_functions) to determine
if support for reference-qualified functions (e.g., member functions with
&
or &&
applied to *this
)
is enabled.
Use __has_feature(cxx_range_for) or __has_extension(cxx_range_for) to determine if support for the range-based for loop 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 __has_extension(cxx_rvalue_references) to determine if support for rvalue references is enabled.
-Use __has_feature(cxx_static_assert) or __has_extension(cxx_static_assert) to determine if support for compile-time assertions using static_assert is enabled.
-Use __has_feature(cxx_auto_type) or -__has_extension(cxx_auto_type) to determine C++0x type inference is +__has_extension(cxx_auto_type) to determine C++11 type inference is 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_strong_enums) or __has_extension(cxx_strong_enums) to determine if support for strongly typed, scoped enumerations is enabled.
-Use __has_feature(cxx_trailing_return) or __has_extension(cxx_trailing_return) to determine if support for the alternate function declaration syntax with trailing return type is enabled.
-Use __has_feature(cxx_unicode_literals) to determine if support for Unicode string literals 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_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 @@ -707,7 +708,7 @@ struct is_convertible_to {
__is_polymorphic
(GNU, Microsoft)__is_union
(GNU, Microsoft)__is_literal(type)
: Determines whether the given type is a literal type__underlying_type(type)
: Retrieves the underlying type for a given enum
type. This trait is required to implement the C++0x standard library.__underlying_type(type)
: Retrieves the underlying type for a given enum
type. This trait is required to implement the C++11 standard library.Clang provides support for C++0x enumerations with a fixed +
Clang provides support for C++11 enumerations with a fixed underlying type within Objective-C. For example, one can write an enumeration type as:
diff --git a/docs/UsersManual.html b/docs/UsersManual.html index 9d7981919c..ac19e15ab3 100644 --- a/docs/UsersManual.html +++ b/docs/UsersManual.html @@ -480,7 +480,7 @@ constructor. For example: }; void foo(const NonCopyable&); void bar() { - foo(NonCopyable()); // Disallowed in C++98; allowed in C++0x. + foo(NonCopyable()); // Disallowed in C++98; allowed in C++11. }@@ -490,7 +490,7 @@ constructor. For example: }; void foo(const NonCopyable2&); void bar() { - foo(NonCopyable2()); // Disallowed in C++98; allowed in C++0x. + foo(NonCopyable2()); // Disallowed in C++98; allowed in C++11. }