From f9f3749cee59fc48274d4b8fbf346415caa19c17 Mon Sep 17 00:00:00 2001 From: redi Date: Sun, 6 Nov 2011 00:29:36 +0000 Subject: PR libstdc++/44436 * doc/xml/manual/status_cxx200x.xml: Document emplace members are missing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181022 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/doc/xml/manual/status_cxx200x.xml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libstdc++-v3/doc/xml/manual') diff --git a/libstdc++-v3/doc/xml/manual/status_cxx200x.xml b/libstdc++-v3/doc/xml/manual/status_cxx200x.xml index 3922dff8307..db4ecb69019 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx200x.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx200x.xml @@ -1387,16 +1387,18 @@ particular release. + 23.2.4 Associative containers - Y - + Partial + Missing emplace members + 23.2.5 Unordered associative containers - Y - + Partial + Missing emplace members 23.3 -- cgit v1.2.1 From 96c81d1fcaef659d24617b7f1263f108ee414298 Mon Sep 17 00:00:00 2001 From: redi Date: Sun, 6 Nov 2011 00:51:17 +0000 Subject: * doc/xml/manual/test.xml: Fix dg-warning examples. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181023 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/doc/xml/manual/test.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libstdc++-v3/doc/xml/manual') diff --git a/libstdc++-v3/doc/xml/manual/test.xml b/libstdc++-v3/doc/xml/manual/test.xml index 006ff332086..84664107db3 100644 --- a/libstdc++-v3/doc/xml/manual/test.xml +++ b/libstdc++-v3/doc/xml/manual/test.xml @@ -609,10 +609,10 @@ Example 1: Testing compilation only // { dg-do compile } Example 2: Testing for expected warnings on line 36, which all targets fail -// { dg-warning "string literals" "" { xfail *-*-* } 36 +// { dg-warning "string literals" "" { xfail *-*-* } 36 } Example 3: Testing for expected warnings on line 36 -// { dg-warning "string literals" "" { target *-*-* } 36 +// { dg-warning "string literals" "" { target *-*-* } 36 } Example 4: Testing for compilation errors on line 41 // { dg-do compile } -- cgit v1.2.1 From dd586d8540bc9193c07e68fa21f1781ef3cbaf4f Mon Sep 17 00:00:00 2001 From: redi Date: Sun, 6 Nov 2011 20:15:53 +0000 Subject: * doc/xml/faq.xml: Replace references to C++0x with C++11. * doc/xml/manual/intro.xml: Likewise. * doc/xml/manual/backwards_compatibility.xml: Likewise. * doc/xml/manual/shared_ptr.xml: Likewise. * doc/xml/manual/configure.xml: Likewise. * doc/xml/manual/evolution.xml: Likewise. * doc/xml/manual/using.xml: Likewise. * doc/xml/manual/strings.xml: Likewise. * doc/xml/manual/debug_mode.xml: Likewise. * doc/xml/manual/policy_data_structures.xml: Likewise. * doc/xml/manual/extensions.xml: Likewise. * doc/xml/manual/diagnostics.xml: Likewise. * doc/xml/manual/test.xml: Likewise. * doc/xml/manual/status_cxx200x.xml: Likewise, and rename to... * doc/xml/manual/status_cxx2011.xml: Here. * doc/Makefile.am: Rename status_cxx200x.xml. * doc/Makefile.in: Regenerate. * doc/html/*: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181041 138bc75d-0d04-0410-961f-82ee72b054a4 --- .../doc/xml/manual/backwards_compatibility.xml | 94 +- libstdc++-v3/doc/xml/manual/configure.xml | 2 +- libstdc++-v3/doc/xml/manual/debug_mode.xml | 8 +- libstdc++-v3/doc/xml/manual/diagnostics.xml | 2 +- libstdc++-v3/doc/xml/manual/evolution.xml | 2 +- libstdc++-v3/doc/xml/manual/extensions.xml | 2 +- libstdc++-v3/doc/xml/manual/intro.xml | 18 +- .../doc/xml/manual/policy_data_structures.xml | 2 +- libstdc++-v3/doc/xml/manual/shared_ptr.xml | 32 +- libstdc++-v3/doc/xml/manual/status_cxx200x.xml | 2621 ------------------- libstdc++-v3/doc/xml/manual/status_cxx2011.xml | 2622 ++++++++++++++++++++ libstdc++-v3/doc/xml/manual/strings.xml | 2 +- libstdc++-v3/doc/xml/manual/test.xml | 4 +- libstdc++-v3/doc/xml/manual/using.xml | 41 +- 14 files changed, 2728 insertions(+), 2724 deletions(-) delete mode 100644 libstdc++-v3/doc/xml/manual/status_cxx200x.xml create mode 100644 libstdc++-v3/doc/xml/manual/status_cxx2011.xml (limited to 'libstdc++-v3/doc/xml/manual') diff --git a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml index 41193bb549d..74a451f0867 100644 --- a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml +++ b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml @@ -693,14 +693,15 @@ other usage is correct. At this time most of the features of the SGI STL extension have been replaced by standardized libraries. - In particular, the unordered_map and unordered_set containers of TR1 - are suitable replacement for the non-standard hash_map and hash_set - containers in the SGI STL. + In particular, the unordered_map and + unordered_set containers of TR1 and C++ 2011 are suitable + replacements for the non-standard hash_map and + hash_set containers in the SGI STL. Header files hash_map and hash_set moved to ext/hash_map and ext/hash_set, respectively. At the same time, all types in these files are enclosed -in namespace __gnu_cxx. Later versions move deprecate +in namespace __gnu_cxx. Later versions deprecate these files, and suggest using TR1's unordered_map and unordered_set instead. @@ -832,7 +833,7 @@ No stream::attach(int fd) -
+<section xml:id="backwards.support_cxx98"><info><title> Support for C++98 dialect. @@ -908,7 +909,7 @@ AC_DEFUN([AC_HEADER_STDCXX_98], [
-
+<section xml:id="backwards.support_tr1"><info><title> Support for C++TR1 dialect. @@ -1000,19 +1001,19 @@ AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET], [
-
-Support for C++0x dialect. +<section xml:id="backwards.support_cxx11"><info><title> +Support for C++11 dialect. -Check for baseline language coverage in the compiler for the C++0xstandard. +Check for baseline language coverage in the compiler for the C++11 standard. -# AC_COMPILE_STDCXX_OX -AC_DEFUN([AC_COMPILE_STDCXX_0X], [ - AC_CACHE_CHECK(if g++ supports C++0x features without additional flags, - ac_cv_cxx_compile_cxx0x_native, +# AC_COMPILE_STDCXX_11 +AC_DEFUN([AC_COMPILE_STDCXX_11], [ + AC_CACHE_CHECK(if g++ supports C++11 features without additional flags, + ac_cv_cxx_compile_cxx11_native, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ @@ -1030,16 +1031,16 @@ AC_DEFUN([AC_COMPILE_STDCXX_0X], [ typedef check<int> check_type; check_type c; check_type&& cr = c;],, - ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no) + ac_cv_cxx_compile_cxx11_native=yes, ac_cv_cxx_compile_cxx11_native=no) AC_LANG_RESTORE ]) - AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x, - ac_cv_cxx_compile_cxx0x_cxx, + AC_CACHE_CHECK(if g++ supports C++11 features with -std=c++11, + ac_cv_cxx_compile_cxx11_cxx, [AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=c++0x" + CXXFLAGS="$CXXFLAGS -std=c++11" AC_TRY_COMPILE([ template <typename T> struct check @@ -1055,17 +1056,17 @@ AC_DEFUN([AC_COMPILE_STDCXX_0X], [ typedef check<int> check_type; check_type c; check_type&& cr = c;],, - ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no) + ac_cv_cxx_compile_cxx11_cxx=yes, ac_cv_cxx_compile_cxx11_cxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) - AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x, - ac_cv_cxx_compile_cxx0x_gxx, + AC_CACHE_CHECK(if g++ supports C++11 features with -std=gnu++11, + ac_cv_cxx_compile_cxx11_gxx, [AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=gnu++0x" + CXXFLAGS="$CXXFLAGS -std=gnu++11" AC_TRY_COMPILE([ template <typename T> struct check @@ -1081,33 +1082,33 @@ AC_DEFUN([AC_COMPILE_STDCXX_0X], [ typedef check<int> check_type; check_type c; check_type&& cr = c;],, - ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no) + ac_cv_cxx_compile_cxx11_gxx=yes, ac_cv_cxx_compile_cxx11_gxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) - if test "$ac_cv_cxx_compile_cxx0x_native" = yes || - test "$ac_cv_cxx_compile_cxx0x_cxx" = yes || - test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then - AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ]) + if test "$ac_cv_cxx_compile_cxx11_native" = yes || + test "$ac_cv_cxx_compile_cxx11_cxx" = yes || + test "$ac_cv_cxx_compile_cxx11_gxx" = yes; then + AC_DEFINE(HAVE_STDCXX_11,,[Define if g++ supports C++11 features. ]) fi ]) -Check for library coverage of the C++0xstandard. +Check for library coverage of the C++2011 standard. -# AC_HEADER_STDCXX_0X -AC_DEFUN([AC_HEADER_STDCXX_0X], [ - AC_CACHE_CHECK(for ISO C++ 0x include files, - ac_cv_cxx_stdcxx_0x, - [AC_REQUIRE([AC_COMPILE_STDCXX_0X]) +# AC_HEADER_STDCXX_11 +AC_DEFUN([AC_HEADER_STDCXX_11], [ + AC_CACHE_CHECK(for ISO C++11 include files, + ac_cv_cxx_stdcxx_11, + [AC_REQUIRE([AC_COMPILE_STDCXX_11]) AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=gnu++0x" + CXXFLAGS="$CXXFLAGS -std=gnu++11" AC_TRY_COMPILE([ #include <cassert> @@ -1175,12 +1176,12 @@ AC_DEFUN([AC_HEADER_STDCXX_0X], [ #include <valarray> #include <vector> ],, - ac_cv_cxx_stdcxx_0x=yes, ac_cv_cxx_stdcxx_0x=no) + ac_cv_cxx_stdcxx_11=yes, ac_cv_cxx_stdcxx_11=no) AC_LANG_RESTORE CXXFLAGS="$ac_save_CXXFLAGS" ]) - if test "$ac_cv_cxx_stdcxx_0x" = yes; then - AC_DEFINE(STDCXX_0X_HEADERS,,[Define if ISO C++ 0x header files are present. ]) + if test "$ac_cv_cxx_stdcxx_11" = yes; then + AC_DEFINE(STDCXX_11_HEADERS,,[Define if ISO C++11 header files are present. ]) fi ]) @@ -1193,11 +1194,11 @@ AC_DEFUN([AC_HEADER_STDCXX_0X], [ AC_DEFUN([AC_HEADER_UNORDERED_MAP], [ AC_CACHE_CHECK(for unordered_map, ac_cv_cxx_unordered_map, - [AC_REQUIRE([AC_COMPILE_STDCXX_0X]) + [AC_REQUIRE([AC_COMPILE_STDCXX_11]) AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=gnu++0x" + CXXFLAGS="$CXXFLAGS -std=gnu++11" AC_TRY_COMPILE([#include <unordered_map>], [using std::unordered_map;], ac_cv_cxx_unordered_map=yes, ac_cv_cxx_unordered_map=no) CXXFLAGS="$ac_save_CXXFLAGS" @@ -1214,11 +1215,11 @@ AC_DEFUN([AC_HEADER_UNORDERED_MAP], [ AC_DEFUN([AC_HEADER_UNORDERED_SET], [ AC_CACHE_CHECK(for unordered_set, ac_cv_cxx_unordered_set, - [AC_REQUIRE([AC_COMPILE_STDCXX_0X]) + [AC_REQUIRE([AC_COMPILE_STDCXX_11]) AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=gnu++0x" + CXXFLAGS="$CXXFLAGS -std=gnu++11" AC_TRY_COMPILE([#include <unordered_set>], [using std::unordered_set;], ac_cv_cxx_unordered_set=yes, ac_cv_cxx_unordered_set=no) CXXFLAGS="$ac_save_CXXFLAGS" @@ -1229,6 +1230,17 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [ fi ]) + + + Some C++11 features first appeared in GCC 4.3 and could be enabled by + and for GCC + releases which pre-date the 2011 standard. Those C++11 features and GCC's + support for them were still changing until the 2011 standard was finished, + but the autoconf checks above could be extended to test for incomplete + C++11 support with and + . + +
@@ -1237,7 +1249,7 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [ <para> - This is a change in behavior from the previous version. Now, most + This is a change in behavior from older versions. Now, most <type>iterator_type</type> typedefs in container classes are POD objects, not <type>value_type</type> pointers. </para> diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml index 6b1efa8006e..5d893d7a1be 100644 --- a/libstdc++-v3/doc/xml/manual/configure.xml +++ b/libstdc++-v3/doc/xml/manual/configure.xml @@ -172,7 +172,7 @@ <listitem><para>Enables link-type checks for the availability of the clock_gettime clocks, used in the implementation of [time.clock], and of the nanosleep and sched_yield functions, used in the - implementation of [thread.thread.this] of the current C++0x draft. + implementation of [thread.thread.this] of the 2011 ISO C++ standard. The choice OPTION=yes checks for the availability of the facilities in libc and libposix4. In case of need the latter is also linked to libstdc++ as part of the build process. OPTION=rt also searches diff --git a/libstdc++-v3/doc/xml/manual/debug_mode.xml b/libstdc++-v3/doc/xml/manual/debug_mode.xml index c58bde34065..89b2c31b811 100644 --- a/libstdc++-v3/doc/xml/manual/debug_mode.xml +++ b/libstdc++-v3/doc/xml/manual/debug_mode.xml @@ -267,12 +267,12 @@ which always works correctly. </tgroup> </table> -<para>In addition, when compiling in C++0x mode, these additional +<para>In addition, when compiling in C++11 mode, these additional containers have additional debug capability. </para> <table frame="all"> -<title>Debugging Containers C++0x +Debugging Containers C++11 @@ -588,7 +588,7 @@ template<typename _Tp, typename _Allocator = allocator<_Tp> Achieving link- and run-time coexistence is not a trivial implementation task. To achieve this goal we required a small - extension to the GNU C++ compiler (since incorporated into the C++0x language specification, described in the GCC Manual for the C++ language as + extension to the GNU C++ compiler (since incorporated into the C++11 language specification, described in the GCC Manual for the C++ language as namespace association), and a complex organization of debug- and release-modes. The end result is that we have achieved per-use @@ -630,7 +630,7 @@ namespace std defined in the namespace __cxx1998) and also the debug-mode container. The debug-mode container is defined within the namespace __debug, which is associated with namespace -std via the C++0x namespace association language feature. This +std via the C++11 namespace association language feature. This method allows the debug and release versions of the same component to coexist at compile-time and link-time without causing an unreasonable maintenance burden, while minimizing confusion. Again, this boils down diff --git a/libstdc++-v3/doc/xml/manual/diagnostics.xml b/libstdc++-v3/doc/xml/manual/diagnostics.xml index 1a6a3f17dc2..fd21442b992 100644 --- a/libstdc++-v3/doc/xml/manual/diagnostics.xml +++ b/libstdc++-v3/doc/xml/manual/diagnostics.xml @@ -117,7 +117,7 @@ Please note that the checks are based on the requirements in the original - C++ standard, some of which have changed in the upcoming C++0x revision. + C++ standard, some of which have changed in the new C++11 revision. Additionally, some correct code might be rejected by the concept checks, for example template argument types may need to be complete when used in a template definition, rather than at the point of instantiation. diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml index 08876deb18a..145c11f28cc 100644 --- a/libstdc++-v3/doc/xml/manual/evolution.xml +++ b/libstdc++-v3/doc/xml/manual/evolution.xml @@ -399,7 +399,7 @@ Backward include edit. - Added in C++0x + Added in C++11 auto_ptr.h and binders.h diff --git a/libstdc++-v3/doc/xml/manual/extensions.xml b/libstdc++-v3/doc/xml/manual/extensions.xml index fb2f5ca83e8..9932a020dd9 100644 --- a/libstdc++-v3/doc/xml/manual/extensions.xml +++ b/libstdc++-v3/doc/xml/manual/extensions.xml @@ -201,7 +201,7 @@ extensions, be aware of two things: The SGI hashing classes hash_set and hash_set have been deprecated by the unordered_set, unordered_multiset, unordered_map, - unordered_multimap containers in TR1 and the upcoming C++0x, and + unordered_multimap containers in TR1 and C++11, and may be removed in future releases. diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index 36e07b4370f..7621de9c2b1 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.xml @@ -29,8 +29,8 @@ - - + + @@ -577,7 +577,7 @@ requirements of the license of GCC. std::complex over-encapsulated Add the real(T) and imag(T) - members; in C++0x mode, also adjust the existing + members; in C++11 mode, also adjust the existing real() and imag() members and free functions. @@ -709,7 +709,7 @@ requirements of the license of GCC. 550: What should the return type of pow(float,int) be? - In C++0x mode, remove the pow(float,int), etc., signatures. + In C++11 mode, remove the pow(float,int), etc., signatures. 586: @@ -739,7 +739,7 @@ requirements of the license of GCC. 691: const_local_iterator cbegin, cend missing from TR1 - In C++0x mode add cbegin(size_type) and cend(size_type) + In C++11 mode add cbegin(size_type) and cend(size_type) to the unordered containers. @@ -764,7 +764,7 @@ requirements of the license of GCC. 761: unordered_map needs an at() member function - In C++0x mode, add at() and at() const. + In C++11 mode, add at() and at() const. 775: @@ -776,13 +776,13 @@ requirements of the license of GCC. 776: Undescribed assign function of std::array - In C++0x mode, remove assign, add fill. + In C++11 mode, remove assign, add fill. 781: std::complex should add missing C99 functions - In C++0x mode, add std::proj. + In C++11 mode, add std::proj. 809: @@ -794,7 +794,7 @@ requirements of the license of GCC. 844: complex pow return type is ambiguous - In C++0x mode, remove the pow(complex<T>, int) signature. + In C++11 mode, remove the pow(complex<T>, int) signature. 853: diff --git a/libstdc++-v3/doc/xml/manual/policy_data_structures.xml b/libstdc++-v3/doc/xml/manual/policy_data_structures.xml index 4ecb933a0e5..11fad5e018d 100644 --- a/libstdc++-v3/doc/xml/manual/policy_data_structures.xml +++ b/libstdc++-v3/doc/xml/manual/policy_data_structures.xml @@ -1365,7 +1365,7 @@ __gnu_pbds::cc_hash_table instead of std::unordered_map, since unordered map does not necessarily mean a hash-based map as implied by - the C++ library (C++0x or TR1). For example, list-based associative + the C++ library (C++11 or TR1). For example, list-based associative containers, which are very useful for the construction of "multimaps," are also unordered. diff --git a/libstdc++-v3/doc/xml/manual/shared_ptr.xml b/libstdc++-v3/doc/xml/manual/shared_ptr.xml index 78cc8c4ba83..6e3392f88ee 100644 --- a/libstdc++-v3/doc/xml/manual/shared_ptr.xml +++ b/libstdc++-v3/doc/xml/manual/shared_ptr.xml @@ -32,14 +32,6 @@ and implements shared ownership semantics. circular-linked-list. - - At the time of writing the C++0x working paper doesn't mention how - threads affect shared_ptr, but it is likely to follow the existing - practice set by boost::shared_ptr. The - shared_ptr in libstdc++ is derived from Boost's, so the same rules - apply. - -
@@ -163,10 +155,10 @@ that simplifies the implementation slightly. -C++0x-only features are: rvalue-ref/move support, allocator support, +C++11-only features are: rvalue-ref/move support, allocator support, aliasing constructor, make_shared & allocate_shared. Additionally, the constructors taking auto_ptr parameters are -deprecated in C++0x mode. +deprecated in C++11 mode. @@ -293,20 +285,20 @@ used when libstdc++ is built without --enable-threads. -
Dual C++0x and TR1 Implementation +
Dual C++11 and TR1 Implementation -The interface of tr1::shared_ptr was extended for C++0x +The interface of tr1::shared_ptr was extended for C++11 with support for rvalue-references and the other features from N2351. The _Sp_counted_base base class is implemented in tr1/boost_sp_shared_count.h and is common to the TR1 -and C++0x versions of shared_ptr. +and C++11 versions of shared_ptr. The classes derived from _Sp_counted_base (see Class Hierarchy -above) and __shared_count are implemented separately for C++0x +above) and __shared_count are implemented separately for C++11 and TR1, in bits/shared_ptr.h and tr1/shared_ptr.h respectively. @@ -314,9 +306,9 @@ and TR1, in bits/shared_ptr.h and The TR1 implementation is considered relatively stable, so is unlikely to change unless bug fixes require it. If the code that is common to both -C++0x and TR1 modes needs to diverge further then it might be necessary to +C++11 and TR1 versions needs to diverge further then it might be necessary to duplicate _Sp_counted_base and only make changes to -the C++0x version. +the C++11 version.
@@ -332,9 +324,9 @@ the C++0x version. As noted in N2351, these functions can be implemented non-intrusively using the alias constructor. However the aliasing constructor is only available -in C++0x mode, so in TR1 mode these casts rely on three non-standard +in C++11 mode, so in TR1 mode these casts rely on three non-standard constructors in shared_ptr and __shared_ptr. -In C++0x mode these constructors and the related tag types are not needed. +In C++11 mode these constructors and the related tag types are not needed. @@ -431,7 +423,7 @@ the following types, depending on how the shared_ptr is constructed. The shared_ptr atomic access - clause in the C++0x working draft is not implemented in GCC. + clause in the C++11 standard is not implemented in GCC. @@ -445,7 +437,7 @@ the following types, depending on how the shared_ptr is constructed. Unlike Boost, this implementation does not use separate classes for the pointer+deleter and pointer+deleter+allocator cases in - C++0x mode, combining both into _Sp_counted_deleter and using + C++11 mode, combining both into _Sp_counted_deleter and using allocator when the user doesn't specify an allocator. If it was found to be beneficial an additional class could easily be added. With the current implementation, diff --git a/libstdc++-v3/doc/xml/manual/status_cxx200x.xml b/libstdc++-v3/doc/xml/manual/status_cxx200x.xml deleted file mode 100644 index db4ecb69019..00000000000 --- a/libstdc++-v3/doc/xml/manual/status_cxx200x.xml +++ /dev/null @@ -1,2621 +0,0 @@ -
- - -C++ 200x - - - ISO C++ - - - 200x - - - - - -This table is based on the table of contents of ISO/IEC -JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11 -Final Draft International Standard, Standard for Programming Language C++ - - - -In this implementation -std=gnu++0x or --std=c++0x flags must be used to enable language -and library -features. See dialect -options. The pre-defined symbol -__GXX_EXPERIMENTAL_CXX0X__ is used to check for the -presence of the required flag. - - - -This page describes the C++0x support in mainline GCC SVN, not in any -particular release. - - - - - -C++ 200x Implementation Status - - - - - - - - - Section - Description - Status - Comments - - - - - - - - 18 - - - Language support - - - - - 18.1 - General - Y - - - - - 18.2 - Types - Partial - Missing offsetof, max_align_t - - - 18.3 - Implementation properties - - - - - - 18.3.2 - Numeric Limits - - - - - 18.3.2.3 - Class template numeric_limits - Y - - - - 18.3.2.4 - numeric_limits members - Y - - - - - 18.3.2.5 - float_round_style - N - - - - - 18.3.2.6 - float_denorm_style - N - - - - 18.3.2.7 - numeric_limits specializations - Y - - - - - 18.3.3 - C Library - Y - - - - - 18.4 - Integer types - - - - - 18.4.1 - Header <cstdint> synopsis - Y - - - - - 18.5 - Start and termination - Partial - C library dependency for quick_exit, at_quick_exit - - - 18.6 - Dynamic memory management - Y - - - - 18.7 - Type identification - - - - - 18.7.1 - Class type_info - Y - - - - 18.7.2 - Class bad_cast - Y - - - - 18.7.3 - Class bad_typeid - Y - - - - 18.8 - Exception handling - - - - - 18.8.1 - Class exception - Y - - - - 18.8.2 - Class bad_exception - Y - - - - 18.8.3 - Abnormal termination - Y - - - - 18.8.4 - uncaught_exception - Y - - - - 18.8.5 - Exception Propagation - Y - - - - 18.8.6 - nested_exception - Y - - - - 18.9 - Initializer lists - - - - - 18.9.1 - Initializer list constructors - Y - - - - 18.9.2 - Initializer list access - Y - - - - 18.9.3 - Initializer list range access - Y - - - - 18.10 - Other runtime support - Y - - - - - 19 - - - Diagnostics - - - - 19.1 - General - Y - - - - 19.2 - Exception classes - Y - - - - 19.3 - Assertions - Y - - - - 19.4 - Error numbers - Y - - - - 19.5 - System error support - - - - - 19.5.1 - Class error_category - Y - - - - 19.5.2 - Class error_code - Y - - - - 19.5.3 - Class error_condition - Y - - - - 19.5.4 - Comparison operators - Y - - - - 19.5.5 - Class system_error - Y - - - - - 20 - - - General utilities - - - - 20.1 - General - - - - - 20.2 - Utility components - - - - - 20.2.1 - Operators - Y - - - - 20.2.2 - Swap - Y - - - - 20.2.3 - forward and move helpers - Y - - - - 20.2.4 - Function template declval - Y - - - - 20.3 - Pairs - - - - - 20.3.1 - In general - - - - - 20.3.2 - Class template pair - Y - - - - 20.3.3 - Specialized algorithms - Y - - - - 20.3.4 - Tuple-like access to pair - Y - - - - 20.3.5 - Piecewise construction - Y - - - - 20.4 - Tuples - - - - - 20.4.1 - In general - - - - - 20.4.2 - Class template tuple - - - - - 20.4.2.1 - Construction - Y - - - - 20.4.2.2 - Assignment - Y - - - - 20.4.2.3 - Swap - Y - - - - 20.4.2.4 - Tuple creation functions - Y - - - - 20.4.2.5 - Tuple helper classes - Y - - - - 20.4.2.6 - Element access - Y - - - - 20.4.2.7 - Relational operators - Y - - - - 20.4.2.8 - Tuple traits - Y - - - - 20.4.2.9 - Tuple specialized algorithms - Y - - - - 20.5 - Class template bitset - Y - - - - 20.5.1 - bitset constructors - Y - - - - 20.5.2 - bitset members - Y - - - - 20.5.3 - bitset hash support - Y - - - - 20.5.4 - bitset operators - Y - - - - 20.6 - Memory - - - - - 20.6.1 - In general - - - - - 20.6.2 - Header <memory> synopsis - - - - - - 20.6.3 - Pointer traits - Partial - Missing rebind - - - - 20.6.4 - Pointer safety - Partial - - - - - 20.6.5 - Align - N - - - - 20.6.6 - Allocator argument tag - Y - - - - 20.6.7 - uses_allocator - Y - - - - - 20.6.8 - Allocator traits - Partial - Missing rebind_alloc and rebind_traits - - - 20.6.9 - The default allocator - Y - - - - 20.6.10 - Raw storage iterator - Y - - - - 20.6.11 - Temporary buffers - Y - - - - 20.6.12 - Specialized algorithms - - - - - 20.6.12.1 - addressof - Y - - - - 20.6.12.2 - uninitialized_copy - Y - - - - 20.6.12.3 - uninitialized_fill - Y - - - - 20.6.12.4 - uninitialized_fill_n - Y - - - - 20.6.13 - C library - Y - - - - 20.7 - Smart pointers - - - - - 20.7.1 - Class template unique_ptr - Y - - - - 20.7.2 - Shared-ownership pointers - Y - - - - 20.7.2.1 - Class bad_weak_ptr - Y - - - - 20.7.2.2 - Class template shared_ptr - Y - - - Uses code from - boost::shared_ptr. - - - - - 20.7.2.3 - Class template weak_ptr - Y - - - - 20.7.2.4 - Class template emable_shared_from_this - Y - - - - - 20.7.2.5 - shared_ptr atomic access - Partial - - - - 20.7.2.6 - Smart pointer hash support - Y - - - - 20.8 - Function objects - - - - - 20.8.1 - Definitions - - - - - 20.8.2 - Requirements - - - - - 20.8.3 - Class template reference_wrapper - Y - - - - 20.8.4 - Arithmetic operation - Y - - - - 20.8.5 - Comparisons - Y - - - - 20.8.6 - Logical operations - Y - - - - 20.8.7 - Bitwise operations - Y - - - - 20.8.8 - Negators - Y - - - - 20.8.9 - Function template bind - Y - - - - - 20.8.10 - Function template mem_fn - Partial - Missing overloads for reference-qualified member functions - - - 20.8.11 - Polymorphic function wrappers - - - - - 20.8.11.1 - Class bad_function_call - Y - - - - - 20.8.11.2 - Class template function - Partial - Missing allocator support - - - 20.8.12 - Class template hash - Y - - - - 20.9 - Metaprogramming and type traits - - - - - 20.9.1 - Requirements - Y - - - - 20.9.2 - Header <type_traits> synopsis - - - - - 20.9.3 - Helper classes - Y - - - - 20.9.4 - Unary Type Traits - Y - - - - 20.9.4.1 - Primary type categories - Y - - - - 20.9.4.2 - Composite type traits - Y - - - - - 20.9.4.3 - Type properties - Partial - Missing is_trivially_copyable, - is_assignable, is_copy_assignable, is_move_assignable, - is_trivially_constructible, is_trivially_default_constructible, - is_trivially_copy_constructible, is_trivially_move_constructible, - is_trivially_assignable, is_trivially_default_assignable, - is_trivially_copy_assignable, is_trivially_move_assignable, - is_trivially_destructible, - is_nothrow_assignable, - is_nothrow_copy_assignable, is_nothrow_move_assignable, - is_nothrow_destructible - - - - 20.9.5 - Type property queries - Y - - - - 20.9.6 - Relationships between types - Y - - - - 20.9.7 - Transformations between types - - - - - 20.9.7.1 - Const-volatile modifications - Y - - - - 20.9.7.2 - Reference modifications - Y - - - - 20.9.7.3 - Sign modifications - Y - - - - 20.9.7.4 - Array modifications - Y - - - - 20.9.7.5 - Pointer modifications - Y - - - - 20.9.7.6 - Other transformations - Y - - - - 20.10 - Compile-time rational arithmetic - - - - - 20.10.1 - In general - - - - - 20.10.2 - Header <ratio> synopsis - - - - - 20.10.3 - Class template ratio - Y - - - - 20.10.4 - Arithmetic on ratios - Y - - - - 20.10.5 - Comparison of ratios - Y - - - - 20.10.6 - SI types for ratio - Y - - - - 20.11 - Time utilities - - - - - 20.11.3 - Clock requirements - Y - - - - 20.11.4 - Time-related traits - - - - - 20.11.4.1 - treat_as_floating_point - Y - - - - 20.11.4.2 - duration_values - Y - - - - 20.11.4.3 - Specializations of common_type - Y - - - - - 20.11.5 - Class template duration - Partial - Missing constexpr for non-member arithmetic operations - - - 20.11.6 - Class template time_point - Y - - - - 20.11.7 - Clocks - - - - - 20.11.7.1 - Class system_clock - Y - - - - - 20.11.7.2 - Class steady_clock - N - Support old monotonic_clock spec instead - - - 20.11.7.3 - Class high_resolution_clock - Y - - - - 20.11.8 - Date and time functions - Y - - - - - 20.12 - Scoped allocator adaptor - Partial - - - - 20.12.1 - Header <scoped_allocator> synopsis - - - - - 20.12.2 - Scoped allocator adaptor member types - Y - - - - 20.12.3 - Scoped allocator adaptor constructors - Y - - - - - 20.12.4 - Scoped allocator adaptor members - Partial - - - - 20.12.5 - Scoped allocator operators - Y - - - - 20.13 - Class type_index - Y - - - - - 21 - - - Strings - - - - 21.1 - General - Y - - - - 21.2 - Character traits - - - - - 21.2.1 - Character traits requirements - Y - - - - 21.2.2 - traits typedefs - Y - - - - 21.2.3 - char_traits specializations - - - - - - 21.2.3.1 - struct char_traits<char> - Partial - Missing constexpr - - - - 21.2.3.2 - struct char_traits<char16_t> - Partial - Missing constexpr - - - 21.2.3.3 - struct char_traits<char32_t> - Y - - - - 21.2.3.4 - struct char_traits<wchar_t> - Y - - - - 21.3 - String classes - Y - - - - 21.4 - Class template basic_string - Y - - - - 21.5 - Numeric Conversions - Y - - - - 21.6 - Hash support - Y - - - - 21.7 - Null-terminated sequence utilities - Y - C library dependency - - - - 22 - - - Localization - - - - 22.1 - General - Y - - - - 22.2 - Header <locale> synopsis - Y - - - - 22.3 - Locales - - - - - 22.3.1 - Class locale - Y - - - - 22.3.2 - locale globals - Y - - - - 22.3.3 - Convenience interfaces - - - - - 22.3.3.1 - Character classification - Y - - - - 22.3.3.2 - Conversions - - - - - 22.3.3.2.1 - Character conversions - Y - - - - - 22.3.3.2.2 - string conversions - N - - - - - 22.3.3.2.3 - Buffer conversions - N - - - - 22.4 - Standard locale categories - - - - - 22.4.1 - The ctype category - Y - - - - 22.4.2 - The numeric category - - - - - 22.4.2.1 - num_get - Y - - - - 22.4.2.2 - num_put - Y - - - - 22.4.3 - The numeric punctuation facet - Y - - - - 22.4.4 - The collate category - Y - - - - 22.4.5 - The time category - - - - - 22.4.5.1 - Class template time_get - Y - - - - 22.4.5.2 - Class template time_get_byname - Y - - - - 22.4.5.3 - Class template time_put - Y - - - - 22.4.5.3 - Class template time_put_byname - Y - - - - 22.4.6 - The monetary category - - - - - 22.4.6.1 - Class template money_get - Y - - - - 22.4.6.2 - Class template money_put - Y - - - - 22.4.6.3 - Class template money_punct - Y - - - - 22.4.6.4 - Class template money_punct_byname - Y - - - - 22.4.7 - The message retrieval category - Y - - - - 22.4.8 - Program-defined facets - Y - - - - - 22.5 - Standard code conversion facets - N - - - - 22.6 - C Library Locales - Y - - - - - 23 - - - Containers - - - - 23.1 - General - - - - - 23.2 - Container requirements - - - - - 23.2.1 - General container requirements - Y - - - - 23.2.2 - Container data races - Y - - - - 23.2.3 - Sequence containers - Y - - - - - 23.2.4 - Associative containers - Partial - Missing emplace members - - - - 23.2.5 - Unordered associative containers - Partial - Missing emplace members - - - 23.3 - Sequence containers - - - - - 23.3.2 - Class template array - Y - - - - 23.3.3 - Class template deque - Y - - - - 23.3.4 - Class template forward_list - Y - - - - 23.3.5 - Class template list - Y - - - - 23.3.6 - Class template vector - Y - - - - 23.3.7 - Class vector<bool> - Y - - - - 23.4 - Associative containers - - - - - 23.4.4 - Class template map - Y - - - - 23.4.5 - Class template multimap - Y - - - - 23.4.6 - Class template set - Y - - - - 23.4.7 - Class template multiset - Y - - - - 23.5 - Unordered associative containers - - - - - 23.5.4 - Class template unordered_map - Y - - - - 23.5.5 - Class template unordered_multimap - Y - - - - 23.5.6 - Class template unordered_set - Y - - - - 23.5.7 - Class template unordered_multiset - Y - - - - 23.6 - Container adaptors - - - - - 23.6.1 - Class template queue - Y - - - - 23.6.2 - Class template priority_queue - Y - - - - 23.6.3 - Class template stack - Y - - - - - 24 - - - Iterators - - - - 24.1 - General - Y - - - - 24.2 - Iterator requirements - Y - - - - 24.3 - Header <iterator> synopsis - Y - - - - 24.4 - Iterator primitives - Y - - - - 24.5 - Iterator adaptors - - - - - 24.5.1 - Reverse iterators - Y - - - - 24.5.2 - Insert iterators - Y - - - - 24.5.3 - Move iterators - Y - - - - 24.6 - Stream iterators - - - - - 24.6.1 - Class template istream_iterator - Y - - - - 24.6.2 - Class template ostream_iterator - Y - - - - 24.6.3 - Class template istreambuf_iterator - Y - - - - 24.6.4 - Class template ostreambuf_iterator - Y - - - - 24.6.5 - range access - Y - - - - - 25 - - - Algorithms - - - - 25.1 - General - - - - - 25.2 - Non-modifying sequence operations - Y - - - - 25.3 - Mutating sequence operations - Y - - - - 25.4 - Sorting and related operations - Y - - - - 25.5 - C library algorithms - Y - - - - - 26 - - - Numerics - - - - 26.1 - General - Y - - - - 26.2 - Numeric type requirements - Y - - - - 26.3 - The floating-point environment - Y - - - - 26.4 - Complex numbers - Partial - Missing constexpr - - - 26.5 - Random number generation - - - - - 26.5.1 - Requirements - - - - - 26.5.2 - Header <random> synopsis - - - - - 26.5.3 - Random number engine class templates - - - - - 26.5.3.1 - Class template linear_congruential_engine - Y - Missing constexpr - - - 26.5.3.2 - Class template mersenne_twister_engine - Y - Missing constexpr - - - 26.5.3.3 - Class template subtract_with_carry_engine - Y - Missing constexpr - - - 26.5.4 - Random number engine adaptor class templates - - - - - 26.5.4.2 - Class template discard_block_engine - Y - Missing constexpr - - - 26.5.4.3 - Class template independent_bits_engine - Y - Missing constexpr - - - 26.5.4.4 - Class template shuffle_order_engine - Y - Missing constexpr - - - 26.5.5 - Engines and engine adaptors with predefined parameters - Y - - - - 26.5.6 - Class random_device - Y - Missing constexpr - - - 26.5.7 - Utilities - - - - - 26.5.7.1 - Class seed_seq - Y - - - - 26.5.7.2 - Function template generate_canonical - Y - - - - 26.5.8 - Random number distribution class templates - - - - - 26.5.8.2 - Uniform distributions - - - - - 26.5.8.2.1 - Class template uniform_int_distribution - Y - - - - 26.5.8.2.2 - Class template uniform_real_distribution - Y - - - - 26.5.8.3 - Bernoulli distributions - - - - - 26.5.8.3.1 - Class bernoulli_distribution - Y - - - - 26.5.8.3.2 - Class template binomial_distribution - Y - - - - 26.5.8.3.3 - Class template geometric_distribution - Y - - - - 26.5.8.3.4 - Class template negative_binomial_distribution - Y - - - - 26.5.8.4 - Poisson distributions - - - - - 26.5.8.4.1 - Class template poisson_distribution - Y - - - - 26.5.8.4.2 - Class template exponential_distribution - Y - - - - 26.5.8.4.3 - Class template gamma_distribution - Y - - - - 26.5.8.4.4 - Class template weibull_distribution - Y - - - - 26.5.8.4.5 - Class template extreme_value_distribution - Y - - - - 26.5.8.5 - Normal distributions - - - - - 26.5.8.5.1 - Class template normal_distribution - Y - - - - 26.5.8.5.2 - Class template lognormal_distribution - Y - - - - 26.5.8.5.3 - Class template chi_squared_distribution - Y - - - - 26.5.8.5.4 - Class template cauchy_distribution - Y - - - - 26.5.8.5.5 - Class template fisher_f_distribution - Y - - - - 26.5.8.5.6 - Class template student_t_distribution - Y - - - - 26.5.8.6 - Sampling distributions - - - - - 26.5.8.6.1 - Class template discrete_distribution - Y - - - - 26.5.8.6.2 - Class template piecewise_constant_distribution - Y - - - - 26.5.8.6.3 - Class template piecewise_linear_distribution - Y - - - - 26.6 - Numeric arrays - - - - - 26.6.1 - Header <valarray> synopsis - Y - - - - 26.6.2 - Class template valarray - Y - - - - 26.6.3 - valarray non-member operations - Y - - - - 26.6.4 - Class slice - Y - - - - 26.6.5 - Class template slice_array - Y - - - - 26.6.6 - The gslice class - Y - - - - 26.6.7 - Class template gslice_array - Y - - - - 26.6.8 - Class template mask_array - Y - - - - 26.6.9 - Class template indirect_array - Y - - - - 26.6.10 - valarray range access - Y - - - - 26.7 - Generalized numeric operations - - - - - 26.7.1 - Header <numeric> synopsis - Y - - - - 26.7.2 - accumulate - Y - - - - 26.7.3 - inner_product - Y - - - - 26.7.4 - partial_sum - Y - - - - 26.7.5 - adjacent_difference - Y - - - - 26.7.6 - iota - Y - - - - 26.8 - C Library - Y - - - - - 27 - - - Input/output library - - - - 27.1 - General - Y - - - - 27.2 - Iostreams requirements - Y - - - - 27.2.1 - Imbue Limitations - Y - - - - 27.2.2 - Positioning Type Limitations - Y - - - - - 27.2.3 - Thread safety - Partial - - - - 27.3 - Forward declarations - Y - - - - 27.4 - Standard iostream objects - Y - - - - 27.4.1 - Overview - Y - - - - 27.4.2 - Narrow stream objects - Y - - - - 27.4.3 - Wide stream objects - Y - - - - - 27.5 - Iostreams base classes - Partial - - Missing move and swap operations on basic_ios. Missing - make_error_code and make_error_condition. - - - - 27.6 - Stream buffers - Y - - - - - 27.7 - Formatting and manipulators - Partial - Missing move and swap operations - - - - 27.8 - String-based streams - Partial - Missing move and swap operations - - - - 27.9 - File-based streams - Partial - Missing move and swap operations - - - - 28 - - - Regular expressions - - - - - 28.1 - General - N - - - - - 28.2 - Definitions - N - - - - - 28.3 - Requirements - N - - - - - 28.4 - Header <regex> synopsis - N - - - - 28.5 - Namespace std::regex_constants - Y - - - - 28.6 - Class regex_error - Y - - - - - 28.7 - Class template regex_traits - Partial - - - - - 28.8 - Class template basic_regex - Partial - - - - - 28.9 - Class template sub_match - Partial - - - - - 28.10 - Class template match_results - Partial - - - - - 28.11 - Regular expression algorithms - N - - - - - 28.12 - Regular expression Iterators - N - - - - - 28.13 - Modified ECMAScript regular expression grammar - N - - - - - 29 - - - Atomic operations - - - - 29.1 - General - Y - - - - 29.2 - Header <atomic> synopsis - Y - - - - - 29.3 - Order and consistency - N - - - - - 29.4 - Lock-free property - Partial - Missing ATOMIC_BOOL_LOCK_FREE and - ATOMIC_POINTER_LOCK_FREE. - Based on _GLIBCXX_ATOMIC_PROPERTY - - - - - 29.5 - Atomic types - Partial - Missing constexpr - - - 29.6 - Operations on atomic types - Y - - - - 29.7 - Flag Type and operations - Y - - - - - 29.8 - Fences - N - - - - - 30 - - - Thread support - - - - 30.1 - General - Y - - - - 30.2 - Requirements - Y - - - - 30.3 - Threads - - - - - - 30.3.1 - Class thread - Partial - thread::id comparisons not well-defined - - - 30.3.2 - Namespace this_thread - Y - - - - 30.4 - Mutual exclusion - - - - - 30.4.1 - Mutex requirements - - - - - 30.4.1.1 - In general - - - - - 30.4.1.2 - Mutex types - - - - - 30.4.1.2.1 - Class mutex - Y - - - - 30.4.1.2.2 - Class recursive_mutex - Y - - - - 30.4.1.3 - Timed mutex types - - - - - 30.4.1.3.1 - Class timed_mutex - Y - - - - 30.4.1.3.2 - Class recursive_timed_mutex - Y - - - - 30.4.2 - Locks - - - - - 30.4.2.1 - Class template lock_guard - Y - - - - 30.4.2.2 - Class template unique_lock - Y - - - - 30.4.3 - Generic locking algorithms - Y - - - - 30.4.4 - Call once - - - - - 30.4.4.1 - Struct once_flag - Y - - - - 30.4.4.2 - Function call_once - Y - - - - - 30.5 - Condition variables - Partial - Missing notify_all_at_thread_exit - - - 30.5.1 - Class condition_variable - Y - - - - 30.5.2 - Class condition_variable_any - Y - - - - 30.6 - Futures - - - - - 30.6.1 - Overview - - - - - 30.6.2 - Error handling - Y - - - - 30.6.3 - Class future_error - Y - - - - 30.6.4 - Shared state - Y - - - - - 30.6.5 - Class template promise - Partial - Missing set_*_at_thread_exit - - - - 30.6.6 - Class template future - Partial - Timed waiting functions do not return future_status - - - - 30.6.7 - Class template shared_future - Partial - Timed waiting functions do not return future_status - - - 30.6.8 - Function template async - Y - - - - - 30.6.9 - Class template packaged_task - Partial - Missing make_ready_at_thread_exit - - - - Appendix D - - - Compatibility features - - - - D.1 - Increment operator with bool operand - - - - - D.2 - register keyword - - - - - D.3 - Implicit declaration of copy functions - - - - - D.4 - Dynamic exception specifications - - - - - D.5 - C standard library headers - - - - - D.6 - Old iostreams members - - - - - D.7 - char* streams - - - - - D.8 - Function objects - - - - - D.9 - Binders - - - - - D.10 - auto_ptr - - - - - D.11 - Violating exception-specifications - - - - - - -
- - -
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml new file mode 100644 index 00000000000..2502b07bd7c --- /dev/null +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -0,0 +1,2622 @@ +
+ + +C++ 2011 + + + ISO C++ + + + 2011 + + + + + +This table is based on the table of contents of ISO/IEC +JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11 +Final Draft International Standard, Standard for Programming Language C++ + + + +In this implementation -std=gnu++11 or +-std=c++11 flags must be used to enable language +and library +features. See dialect +options. The pre-defined symbol +__GXX_EXPERIMENTAL_CXX0X__ is used to check for the +presence of the required flag. + + + +This page describes the C++11 support in mainline GCC SVN, not in any +particular release. + + + + + +C++ 2011 Implementation Status + + + + + + + + + Section + Description + Status + Comments + + + + + + + + 18 + + + Language support + + + + + 18.1 + General + Y + + + + + 18.2 + Types + Partial + Missing offsetof, max_align_t + + + 18.3 + Implementation properties + + + + + + 18.3.2 + Numeric Limits + + + + + 18.3.2.3 + Class template numeric_limits + Y + + + + 18.3.2.4 + numeric_limits members + Y + + + + + 18.3.2.5 + float_round_style + N + + + + + 18.3.2.6 + float_denorm_style + N + + + + 18.3.2.7 + numeric_limits specializations + Y + + + + + 18.3.3 + C Library + Y + + + + + 18.4 + Integer types + + + + + 18.4.1 + Header <cstdint> synopsis + Y + + + + + 18.5 + Start and termination + Partial + C library dependency for quick_exit, at_quick_exit + + + 18.6 + Dynamic memory management + Y + + + + 18.7 + Type identification + + + + + 18.7.1 + Class type_info + Y + + + + 18.7.2 + Class bad_cast + Y + + + + 18.7.3 + Class bad_typeid + Y + + + + 18.8 + Exception handling + + + + + 18.8.1 + Class exception + Y + + + + 18.8.2 + Class bad_exception + Y + + + + 18.8.3 + Abnormal termination + Y + + + + 18.8.4 + uncaught_exception + Y + + + + 18.8.5 + Exception Propagation + Y + + + + 18.8.6 + nested_exception + Y + + + + 18.9 + Initializer lists + + + + + 18.9.1 + Initializer list constructors + Y + + + + 18.9.2 + Initializer list access + Y + + + + 18.9.3 + Initializer list range access + Y + + + + 18.10 + Other runtime support + Y + + + + + 19 + + + Diagnostics + + + + 19.1 + General + Y + + + + 19.2 + Exception classes + Y + + + + 19.3 + Assertions + Y + + + + 19.4 + Error numbers + Y + + + + 19.5 + System error support + + + + + 19.5.1 + Class error_category + Y + + + + 19.5.2 + Class error_code + Y + + + + 19.5.3 + Class error_condition + Y + + + + 19.5.4 + Comparison operators + Y + + + + 19.5.5 + Class system_error + Y + + + + + 20 + + + General utilities + + + + 20.1 + General + + + + + 20.2 + Utility components + + + + + 20.2.1 + Operators + Y + + + + 20.2.2 + Swap + Y + + + + 20.2.3 + forward and move helpers + Y + + + + 20.2.4 + Function template declval + Y + + + + 20.3 + Pairs + + + + + 20.3.1 + In general + + + + + 20.3.2 + Class template pair + Y + + + + 20.3.3 + Specialized algorithms + Y + + + + 20.3.4 + Tuple-like access to pair + Y + + + + 20.3.5 + Piecewise construction + Y + + + + 20.4 + Tuples + + + + + 20.4.1 + In general + + + + + 20.4.2 + Class template tuple + + + + + 20.4.2.1 + Construction + Y + + + + 20.4.2.2 + Assignment + Y + + + + 20.4.2.3 + Swap + Y + + + + 20.4.2.4 + Tuple creation functions + Y + + + + 20.4.2.5 + Tuple helper classes + Y + + + + 20.4.2.6 + Element access + Y + + + + 20.4.2.7 + Relational operators + Y + + + + 20.4.2.8 + Tuple traits + Y + + + + 20.4.2.9 + Tuple specialized algorithms + Y + + + + 20.5 + Class template bitset + Y + + + + 20.5.1 + bitset constructors + Y + + + + 20.5.2 + bitset members + Y + + + + 20.5.3 + bitset hash support + Y + + + + 20.5.4 + bitset operators + Y + + + + 20.6 + Memory + + + + + 20.6.1 + In general + + + + + 20.6.2 + Header <memory> synopsis + + + + + + 20.6.3 + Pointer traits + Partial + Missing rebind + + + + 20.6.4 + Pointer safety + Partial + + + + + 20.6.5 + Align + N + + + + 20.6.6 + Allocator argument tag + Y + + + + 20.6.7 + uses_allocator + Y + + + + + 20.6.8 + Allocator traits + Partial + Missing rebind_alloc and rebind_traits + + + 20.6.9 + The default allocator + Y + + + + 20.6.10 + Raw storage iterator + Y + + + + 20.6.11 + Temporary buffers + Y + + + + 20.6.12 + Specialized algorithms + + + + + 20.6.12.1 + addressof + Y + + + + 20.6.12.2 + uninitialized_copy + Y + + + + 20.6.12.3 + uninitialized_fill + Y + + + + 20.6.12.4 + uninitialized_fill_n + Y + + + + 20.6.13 + C library + Y + + + + 20.7 + Smart pointers + + + + + 20.7.1 + Class template unique_ptr + Y + + + + 20.7.2 + Shared-ownership pointers + Y + + + + 20.7.2.1 + Class bad_weak_ptr + Y + + + + 20.7.2.2 + Class template shared_ptr + Y + + + Uses code from + boost::shared_ptr. + + + + + 20.7.2.3 + Class template weak_ptr + Y + + + + 20.7.2.4 + Class template emable_shared_from_this + Y + + + + + 20.7.2.5 + shared_ptr atomic access + Partial + + + + 20.7.2.6 + Smart pointer hash support + Y + + + + 20.8 + Function objects + + + + + 20.8.1 + Definitions + + + + + 20.8.2 + Requirements + + + + + 20.8.3 + Class template reference_wrapper + Y + + + + 20.8.4 + Arithmetic operation + Y + + + + 20.8.5 + Comparisons + Y + + + + 20.8.6 + Logical operations + Y + + + + 20.8.7 + Bitwise operations + Y + + + + 20.8.8 + Negators + Y + + + + 20.8.9 + Function template bind + Y + + + + + 20.8.10 + Function template mem_fn + Partial + Missing overloads for reference-qualified member functions + + + 20.8.11 + Polymorphic function wrappers + + + + + 20.8.11.1 + Class bad_function_call + Y + + + + + 20.8.11.2 + Class template function + Partial + Missing allocator support + + + 20.8.12 + Class template hash + Y + + + + 20.9 + Metaprogramming and type traits + + + + + 20.9.1 + Requirements + Y + + + + 20.9.2 + Header <type_traits> synopsis + + + + + 20.9.3 + Helper classes + Y + + + + 20.9.4 + Unary Type Traits + Y + + + + 20.9.4.1 + Primary type categories + Y + + + + 20.9.4.2 + Composite type traits + Y + + + + + 20.9.4.3 + Type properties + Partial + Missing is_trivially_copyable, + is_assignable, is_copy_assignable, is_move_assignable, + is_trivially_constructible, is_trivially_default_constructible, + is_trivially_copy_constructible, is_trivially_move_constructible, + is_trivially_assignable, is_trivially_default_assignable, + is_trivially_copy_assignable, is_trivially_move_assignable, + is_trivially_destructible, + is_nothrow_assignable, + is_nothrow_copy_assignable, is_nothrow_move_assignable, + is_nothrow_destructible + + + + 20.9.5 + Type property queries + Y + + + + 20.9.6 + Relationships between types + Y + + + + 20.9.7 + Transformations between types + + + + + 20.9.7.1 + Const-volatile modifications + Y + + + + 20.9.7.2 + Reference modifications + Y + + + + 20.9.7.3 + Sign modifications + Y + + + + 20.9.7.4 + Array modifications + Y + + + + 20.9.7.5 + Pointer modifications + Y + + + + 20.9.7.6 + Other transformations + Y + + + + 20.10 + Compile-time rational arithmetic + + + + + 20.10.1 + In general + + + + + 20.10.2 + Header <ratio> synopsis + + + + + 20.10.3 + Class template ratio + Y + + + + 20.10.4 + Arithmetic on ratios + Y + + + + 20.10.5 + Comparison of ratios + Y + + + + 20.10.6 + SI types for ratio + Y + + + + 20.11 + Time utilities + + + + + 20.11.3 + Clock requirements + Y + + + + 20.11.4 + Time-related traits + + + + + 20.11.4.1 + treat_as_floating_point + Y + + + + 20.11.4.2 + duration_values + Y + + + + 20.11.4.3 + Specializations of common_type + Y + + + + + 20.11.5 + Class template duration + Partial + Missing constexpr for non-member arithmetic operations + + + 20.11.6 + Class template time_point + Y + + + + 20.11.7 + Clocks + + + + + 20.11.7.1 + Class system_clock + Y + + + + + 20.11.7.2 + Class steady_clock + N + Support old monotonic_clock spec instead + + + 20.11.7.3 + Class high_resolution_clock + Y + + + + 20.11.8 + Date and time functions + Y + + + + + 20.12 + Scoped allocator adaptor + Partial + + + + 20.12.1 + Header <scoped_allocator> synopsis + + + + + 20.12.2 + Scoped allocator adaptor member types + Y + + + + 20.12.3 + Scoped allocator adaptor constructors + Y + + + + + 20.12.4 + Scoped allocator adaptor members + Partial + + + + 20.12.5 + Scoped allocator operators + Y + + + + 20.13 + Class type_index + Y + + + + + 21 + + + Strings + + + + 21.1 + General + Y + + + + 21.2 + Character traits + + + + + 21.2.1 + Character traits requirements + Y + + + + 21.2.2 + traits typedefs + Y + + + + 21.2.3 + char_traits specializations + + + + + + 21.2.3.1 + struct char_traits<char> + Partial + Missing constexpr + + + + 21.2.3.2 + struct char_traits<char16_t> + Partial + Missing constexpr + + + 21.2.3.3 + struct char_traits<char32_t> + Y + + + + 21.2.3.4 + struct char_traits<wchar_t> + Y + + + + 21.3 + String classes + Y + + + + + 21.4 + Class template basic_string + Partial + Missing pop_back + + + 21.5 + Numeric Conversions + Y + + + + 21.6 + Hash support + Y + + + + 21.7 + Null-terminated sequence utilities + Y + C library dependency + + + + 22 + + + Localization + + + + 22.1 + General + Y + + + + 22.2 + Header <locale> synopsis + Y + + + + 22.3 + Locales + + + + + 22.3.1 + Class locale + Y + + + + 22.3.2 + locale globals + Y + + + + 22.3.3 + Convenience interfaces + + + + + 22.3.3.1 + Character classification + Y + + + + 22.3.3.2 + Conversions + + + + + 22.3.3.2.1 + Character conversions + Y + + + + + 22.3.3.2.2 + string conversions + N + + + + + 22.3.3.2.3 + Buffer conversions + N + + + + 22.4 + Standard locale categories + + + + + 22.4.1 + The ctype category + Y + + + + 22.4.2 + The numeric category + + + + + 22.4.2.1 + num_get + Y + + + + 22.4.2.2 + num_put + Y + + + + 22.4.3 + The numeric punctuation facet + Y + + + + 22.4.4 + The collate category + Y + + + + 22.4.5 + The time category + + + + + 22.4.5.1 + Class template time_get + Y + + + + 22.4.5.2 + Class template time_get_byname + Y + + + + 22.4.5.3 + Class template time_put + Y + + + + 22.4.5.3 + Class template time_put_byname + Y + + + + 22.4.6 + The monetary category + + + + + 22.4.6.1 + Class template money_get + Y + + + + 22.4.6.2 + Class template money_put + Y + + + + 22.4.6.3 + Class template money_punct + Y + + + + 22.4.6.4 + Class template money_punct_byname + Y + + + + 22.4.7 + The message retrieval category + Y + + + + 22.4.8 + Program-defined facets + Y + + + + + 22.5 + Standard code conversion facets + N + + + + 22.6 + C Library Locales + Y + + + + + 23 + + + Containers + + + + 23.1 + General + + + + + 23.2 + Container requirements + + + + + 23.2.1 + General container requirements + Y + + + + 23.2.2 + Container data races + Y + + + + 23.2.3 + Sequence containers + Y + + + + + 23.2.4 + Associative containers + Partial + Missing emplace members + + + + 23.2.5 + Unordered associative containers + Partial + Missing emplace members + + + 23.3 + Sequence containers + + + + + 23.3.2 + Class template array + Y + + + + 23.3.3 + Class template deque + Y + + + + 23.3.4 + Class template forward_list + Y + + + + 23.3.5 + Class template list + Y + + + + 23.3.6 + Class template vector + Y + + + + 23.3.7 + Class vector<bool> + Y + + + + 23.4 + Associative containers + + + + + 23.4.4 + Class template map + Y + + + + 23.4.5 + Class template multimap + Y + + + + 23.4.6 + Class template set + Y + + + + 23.4.7 + Class template multiset + Y + + + + 23.5 + Unordered associative containers + + + + + 23.5.4 + Class template unordered_map + Y + + + + 23.5.5 + Class template unordered_multimap + Y + + + + 23.5.6 + Class template unordered_set + Y + + + + 23.5.7 + Class template unordered_multiset + Y + + + + 23.6 + Container adaptors + + + + + 23.6.1 + Class template queue + Y + + + + 23.6.2 + Class template priority_queue + Y + + + + 23.6.3 + Class template stack + Y + + + + + 24 + + + Iterators + + + + 24.1 + General + Y + + + + 24.2 + Iterator requirements + Y + + + + 24.3 + Header <iterator> synopsis + Y + + + + 24.4 + Iterator primitives + Y + + + + 24.5 + Iterator adaptors + + + + + 24.5.1 + Reverse iterators + Y + + + + 24.5.2 + Insert iterators + Y + + + + 24.5.3 + Move iterators + Y + + + + 24.6 + Stream iterators + + + + + 24.6.1 + Class template istream_iterator + Y + + + + 24.6.2 + Class template ostream_iterator + Y + + + + 24.6.3 + Class template istreambuf_iterator + Y + + + + 24.6.4 + Class template ostreambuf_iterator + Y + + + + 24.6.5 + range access + Y + + + + + 25 + + + Algorithms + + + + 25.1 + General + + + + + 25.2 + Non-modifying sequence operations + Y + + + + 25.3 + Mutating sequence operations + Y + + + + 25.4 + Sorting and related operations + Y + + + + 25.5 + C library algorithms + Y + + + + + 26 + + + Numerics + + + + 26.1 + General + Y + + + + 26.2 + Numeric type requirements + Y + + + + 26.3 + The floating-point environment + Y + + + + 26.4 + Complex numbers + Partial + Missing constexpr + + + 26.5 + Random number generation + + + + + 26.5.1 + Requirements + + + + + 26.5.2 + Header <random> synopsis + + + + + 26.5.3 + Random number engine class templates + + + + + 26.5.3.1 + Class template linear_congruential_engine + Y + Missing constexpr + + + 26.5.3.2 + Class template mersenne_twister_engine + Y + Missing constexpr + + + 26.5.3.3 + Class template subtract_with_carry_engine + Y + Missing constexpr + + + 26.5.4 + Random number engine adaptor class templates + + + + + 26.5.4.2 + Class template discard_block_engine + Y + Missing constexpr + + + 26.5.4.3 + Class template independent_bits_engine + Y + Missing constexpr + + + 26.5.4.4 + Class template shuffle_order_engine + Y + Missing constexpr + + + 26.5.5 + Engines and engine adaptors with predefined parameters + Y + + + + 26.5.6 + Class random_device + Y + Missing constexpr + + + 26.5.7 + Utilities + + + + + 26.5.7.1 + Class seed_seq + Y + + + + 26.5.7.2 + Function template generate_canonical + Y + + + + 26.5.8 + Random number distribution class templates + + + + + 26.5.8.2 + Uniform distributions + + + + + 26.5.8.2.1 + Class template uniform_int_distribution + Y + + + + 26.5.8.2.2 + Class template uniform_real_distribution + Y + + + + 26.5.8.3 + Bernoulli distributions + + + + + 26.5.8.3.1 + Class bernoulli_distribution + Y + + + + 26.5.8.3.2 + Class template binomial_distribution + Y + + + + 26.5.8.3.3 + Class template geometric_distribution + Y + + + + 26.5.8.3.4 + Class template negative_binomial_distribution + Y + + + + 26.5.8.4 + Poisson distributions + + + + + 26.5.8.4.1 + Class template poisson_distribution + Y + + + + 26.5.8.4.2 + Class template exponential_distribution + Y + + + + 26.5.8.4.3 + Class template gamma_distribution + Y + + + + 26.5.8.4.4 + Class template weibull_distribution + Y + + + + 26.5.8.4.5 + Class template extreme_value_distribution + Y + + + + 26.5.8.5 + Normal distributions + + + + + 26.5.8.5.1 + Class template normal_distribution + Y + + + + 26.5.8.5.2 + Class template lognormal_distribution + Y + + + + 26.5.8.5.3 + Class template chi_squared_distribution + Y + + + + 26.5.8.5.4 + Class template cauchy_distribution + Y + + + + 26.5.8.5.5 + Class template fisher_f_distribution + Y + + + + 26.5.8.5.6 + Class template student_t_distribution + Y + + + + 26.5.8.6 + Sampling distributions + + + + + 26.5.8.6.1 + Class template discrete_distribution + Y + + + + 26.5.8.6.2 + Class template piecewise_constant_distribution + Y + + + + 26.5.8.6.3 + Class template piecewise_linear_distribution + Y + + + + 26.6 + Numeric arrays + + + + + 26.6.1 + Header <valarray> synopsis + Y + + + + 26.6.2 + Class template valarray + Y + + + + 26.6.3 + valarray non-member operations + Y + + + + 26.6.4 + Class slice + Y + + + + 26.6.5 + Class template slice_array + Y + + + + 26.6.6 + The gslice class + Y + + + + 26.6.7 + Class template gslice_array + Y + + + + 26.6.8 + Class template mask_array + Y + + + + 26.6.9 + Class template indirect_array + Y + + + + 26.6.10 + valarray range access + Y + + + + 26.7 + Generalized numeric operations + + + + + 26.7.1 + Header <numeric> synopsis + Y + + + + 26.7.2 + accumulate + Y + + + + 26.7.3 + inner_product + Y + + + + 26.7.4 + partial_sum + Y + + + + 26.7.5 + adjacent_difference + Y + + + + 26.7.6 + iota + Y + + + + 26.8 + C Library + Y + + + + + 27 + + + Input/output library + + + + 27.1 + General + Y + + + + 27.2 + Iostreams requirements + Y + + + + 27.2.1 + Imbue Limitations + Y + + + + 27.2.2 + Positioning Type Limitations + Y + + + + + 27.2.3 + Thread safety + Partial + + + + 27.3 + Forward declarations + Y + + + + 27.4 + Standard iostream objects + Y + + + + 27.4.1 + Overview + Y + + + + 27.4.2 + Narrow stream objects + Y + + + + 27.4.3 + Wide stream objects + Y + + + + + 27.5 + Iostreams base classes + Partial + + Missing move and swap operations on basic_ios. Missing + make_error_code and make_error_condition. + + + + 27.6 + Stream buffers + Y + + + + + 27.7 + Formatting and manipulators + Partial + Missing move and swap operations + + + + 27.8 + String-based streams + Partial + Missing move and swap operations + + + + 27.9 + File-based streams + Partial + Missing move and swap operations + + + + 28 + + + Regular expressions + + + + + 28.1 + General + N + + + + + 28.2 + Definitions + N + + + + + 28.3 + Requirements + N + + + + + 28.4 + Header <regex> synopsis + N + + + + 28.5 + Namespace std::regex_constants + Y + + + + 28.6 + Class regex_error + Y + + + + + 28.7 + Class template regex_traits + Partial + + + + + 28.8 + Class template basic_regex + Partial + + + + + 28.9 + Class template sub_match + Partial + + + + + 28.10 + Class template match_results + Partial + + + + + 28.11 + Regular expression algorithms + N + + + + + 28.12 + Regular expression Iterators + N + + + + + 28.13 + Modified ECMAScript regular expression grammar + N + + + + + 29 + + + Atomic operations + + + + 29.1 + General + Y + + + + 29.2 + Header <atomic> synopsis + Y + + + + + 29.3 + Order and consistency + N + + + + + 29.4 + Lock-free property + Partial + Missing ATOMIC_BOOL_LOCK_FREE and + ATOMIC_POINTER_LOCK_FREE. + Based on _GLIBCXX_ATOMIC_PROPERTY + + + + + 29.5 + Atomic types + Partial + Missing constexpr + + + 29.6 + Operations on atomic types + Y + + + + 29.7 + Flag Type and operations + Y + + + + + 29.8 + Fences + N + + + + + 30 + + + Thread support + + + + 30.1 + General + Y + + + + 30.2 + Requirements + Y + + + + 30.3 + Threads + + + + + + 30.3.1 + Class thread + Partial + thread::id comparisons not well-defined + + + 30.3.2 + Namespace this_thread + Y + + + + 30.4 + Mutual exclusion + + + + + 30.4.1 + Mutex requirements + + + + + 30.4.1.1 + In general + + + + + 30.4.1.2 + Mutex types + + + + + 30.4.1.2.1 + Class mutex + Y + + + + 30.4.1.2.2 + Class recursive_mutex + Y + + + + 30.4.1.3 + Timed mutex types + + + + + 30.4.1.3.1 + Class timed_mutex + Y + + + + 30.4.1.3.2 + Class recursive_timed_mutex + Y + + + + 30.4.2 + Locks + + + + + 30.4.2.1 + Class template lock_guard + Y + + + + 30.4.2.2 + Class template unique_lock + Y + + + + 30.4.3 + Generic locking algorithms + Y + + + + 30.4.4 + Call once + + + + + 30.4.4.1 + Struct once_flag + Y + + + + 30.4.4.2 + Function call_once + Y + + + + + 30.5 + Condition variables + Partial + Missing notify_all_at_thread_exit + + + 30.5.1 + Class condition_variable + Y + + + + 30.5.2 + Class condition_variable_any + Y + + + + 30.6 + Futures + + + + + 30.6.1 + Overview + + + + + 30.6.2 + Error handling + Y + + + + 30.6.3 + Class future_error + Y + + + + 30.6.4 + Shared state + Y + + + + + 30.6.5 + Class template promise + Partial + Missing set_*_at_thread_exit + + + + 30.6.6 + Class template future + Partial + Timed waiting functions do not return future_status + + + + 30.6.7 + Class template shared_future + Partial + Timed waiting functions do not return future_status + + + 30.6.8 + Function template async + Y + + + + + 30.6.9 + Class template packaged_task + Partial + Missing make_ready_at_thread_exit + + + + Appendix D + + + Compatibility features + + + + D.1 + Increment operator with bool operand + + + + + D.2 + register keyword + + + + + D.3 + Implicit declaration of copy functions + + + + + D.4 + Dynamic exception specifications + + + + + D.5 + C standard library headers + + + + + D.6 + Old iostreams members + + + + + D.7 + char* streams + + + + + D.8 + Function objects + + + + + D.9 + Binders + + + + + D.10 + auto_ptr + + + + + D.11 + Violating exception-specifications + + + + + + +
+ + +
diff --git a/libstdc++-v3/doc/xml/manual/strings.xml b/libstdc++-v3/doc/xml/manual/strings.xml index 4d9fc64f766..1387189ece4 100644 --- a/libstdc++-v3/doc/xml/manual/strings.xml +++ b/libstdc++-v3/doc/xml/manual/strings.xml @@ -359,7 +359,7 @@ stringtok(Container &container, string const &in, entry) but the regular copy constructor cannot be used because libstdc++'s string is Copy-On-Write.
- In C++0x mode you can call + In C++11 mode you can call s.shrink_to_fit() to achieve the same effect as s.reserve(s.size()). diff --git a/libstdc++-v3/doc/xml/manual/test.xml b/libstdc++-v3/doc/xml/manual/test.xml index 84664107db3..88bf14dffef 100644 --- a/libstdc++-v3/doc/xml/manual/test.xml +++ b/libstdc++-v3/doc/xml/manual/test.xml @@ -896,7 +896,7 @@ as the allocator type. - C++0x Container Requirements. + C++11 Container Requirements. @@ -924,7 +924,7 @@ as the allocator type.
-C++0x Requirements Test Sequence Descriptions +C++11 Requirements Test Sequence Descriptions diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml index 49541165868..f081ed4bc44 100644 --- a/libstdc++-v3/doc/xml/manual/using.xml +++ b/libstdc++-v3/doc/xml/manual/using.xml @@ -8,7 +8,7 @@ The set of features available in the GNU C++ library is shaped by - several GCC + several GCC Command Options. Options that impact libstdc++ are enumerated and detailed in the table below. @@ -43,12 +43,12 @@ - -std=c++0x - Use the working draft of the upcoming ISO C++0x standard. + -std=c++11 + Use the 2011 ISO C++ standard. - -std=gnu++0x + -std=gnu++11 As directly above, with GNU extensions. @@ -64,7 +64,7 @@ -pthread or -pthreads - For ISO C++0x <thread>, <future>, + For ISO C++11 <thread>, <future>, <mutex>, or <condition_variable>. @@ -108,8 +108,7 @@ Two dialects of standard headers are supported, corresponding to - the 1998 standard as updated for 2003, and the draft of the - upcoming 200x standard. + the 1998 standard as updated for 2003, and the current 2011 standard. @@ -218,13 +217,13 @@ -C++0x include files. These are only available in C++0x compilation -mode, i.e. -std=c++0x or -std=gnu++0x. +C++11 include files. These are only available in C++11 compilation +mode, i.e. -std=c++11 or -std=gnu++11. -C++ 200x Library Headers +C++ 2011 Library Headers @@ -310,7 +309,7 @@ mode, i.e. -std=c++0x or -std=gnu++0x.
-C++ 200x Library Headers for C Library Facilities +C++ 2011 Library Headers for C Library Facilities @@ -632,22 +631,22 @@ possible. It's an all-or-nothing affair. Thus, code like #include <functional> -Implies C++0x mode. To use the entities in <array>, the C++0x -compilation mode must be used, which implies the C++0x functionality +Implies C++11 mode. To use the entities in <array>, the C++11 +compilation mode must be used, which implies the C++11 functionality (and deprecations) in <functional> will be present. Second, the other headers can be included with either dialect of -the standard headers, although features and types specific to C++0x -are still only enabled when in C++0x compilation mode. So, to use +the standard headers, although features and types specific to C++11 +are still only enabled when in C++11 compilation mode. So, to use rvalue references with __gnu_cxx::vstring, or to use the debug-mode versions of std::unordered_map, one must use -the std=gnu++0x compiler flag. (Or std=c++0x, of course.) +the std=gnu++11 compiler flag. (Or std=c++11, of course.) -A special case of the second rule is the mixing of TR1 and C++0x +A special case of the second rule is the mixing of TR1 and C++11 facilities. It is possible (although not especially prudent) to -include both the TR1 version and the C++0x version of header in the +include both the TR1 version and the C++11 version of header in the same translation unit: @@ -656,7 +655,7 @@ same translation unit: #include <type_traits> - Several parts of C++0x diverge quite substantially from TR1 predecessors. + Several parts of C++11 diverge quite substantially from TR1 predecessors. @@ -841,7 +840,7 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe removes older ARM-style iostreams code, and other anachronisms from the API. This macro is dependent on the version of the standard being tracked, and as a result may give different results for - -std=c++98 and -std=c++0x. This may + -std=c++98 and -std=c++11. This may be useful in updating old C++ code which no longer meet the requirements of the language, or for checking current code against new language standards. @@ -1093,7 +1092,7 @@ namespace gtk In the - C++0x dialect add + C++11 dialect add -- cgit v1.2.1 From c11c11bf8add34daae97c568a50308b1c08254fd Mon Sep 17 00:00:00 2001 From: redi Date: Sun, 6 Nov 2011 22:10:41 +0000 Subject: * doc/xml/manual/status_cxx2011.xml: Document and as missing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181045 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/doc/xml/manual/status_cxx2011.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'libstdc++-v3/doc/xml/manual') diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 2502b07bd7c..7f0625492b2 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -253,10 +253,11 @@ particular release. + 18.10 Other runtime support - Y - + Partial + Missing <cstdalign> @@ -1141,10 +1142,13 @@ particular release. + 21.7 Null-terminated sequence utilities - Y - C library dependency + Partial + C library dependency. + Missing <cuchar> + -- cgit v1.2.1 From 7cc301360be9e2df43673fe7e6c273f28496b31a Mon Sep 17 00:00:00 2001 From: redi Date: Sun, 6 Nov 2011 23:25:25 +0000 Subject: * doc/xml/manual/backwards_compatibility.xml: Fix autoconf tests for C++11 compiler features and library headers. Add stable id attributes. Use element for headers and surround in angle brackets. Use for classes. * doc/html/*: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181047 138bc75d-0d04-0410-961f-82ee72b054a4 --- .../doc/xml/manual/backwards_compatibility.xml | 145 ++++++++++++--------- 1 file changed, 86 insertions(+), 59 deletions(-) (limited to 'libstdc++-v3/doc/xml/manual') diff --git a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml index 74a451f0867..b69ac4d12d2 100644 --- a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml +++ b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml @@ -42,24 +42,24 @@ Committee couldn't include everything, and so a lot of those Portability notes and known implementation limitations are as follows. -
No <code>ios_base</code> +
No <code>ios_base</code> At least some older implementations don't have std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit.
-
No <code>cout</code> in <code>ostream.h</code>, no <code>cin</code> in <code>istream.h</code> +
No <code>cout</code> in <filename class="headerfile"><ostream.h></filename>, no <code>cin</code> in <filename class="headerfile"><istream.h></filename> In earlier versions of the standard, - fstream.h, - ostream.h - and istream.h + <fstream.h>, + <ostream.h> + and <istream.h> used to define cout, cin and so on. ISO C++ specifies that one needs to include - iostream + <iostream> explicitly to get the required definitions. Some include adjustment may be required. @@ -96,7 +96,7 @@ considered replaced and rewritten. Portability notes and known implementation limitations are as follows. -
Namespace <code>std::</code> not supported +
Namespace <code>std::</code> not supported @@ -114,7 +114,7 @@ considered replaced and rewritten. First, see if the compiler has a flag for this. Namespace back-portability-issues are generally not a problem for g++ compilers that do not have libstdc++ in std::, as the - compilers use -fno-honor-std (ignore + compilers use (ignore std::, :: = std::) by default. That is, the responsibility for enabling or disabling std:: is on the user; the maintainer does not have to care about it. This @@ -182,7 +182,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
-
Illegal iterator usage +
Illegal iterator usage The following illustrate implementation-allowed illegal iterator @@ -212,12 +212,12 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
-
<code>isspace</code> from <filename class="headerfile">cctype</filename> is a macro +<section xml:id="backwards.second.isspace"><info><title><code>isspace</code> from <filename class="headerfile"><cctype></filename> is a macro - Glibc 2.0.x and 2.1.x define ctype.h functionality as macros + Glibc 2.0.x and 2.1.x define <ctype.h> functionality as macros (isspace, isalpha etc.). @@ -242,7 +242,7 @@ std:: (__ctype_b[(int) ( ( 'X' ) )] & (unsigned short int) _ISspace ) ; A solution is to modify a header-file so that the compiler tells - ctype.h to define functions + <ctype.h> to define functions instead of macros: @@ -254,20 +254,21 @@ std:: (__ctype_b[(int) ( ( 'X' ) )] & (unsigned short int) _ISspace ) ; - Then, include ctype.h + Then, include <ctype.h> Another problem arises if you put a using namespace - std; declaration at the top, and include ctype.h. This will result in - ambiguities between the definitions in the global namespace - (ctype.h) and the + std; declaration at the top, and include + <ctype.h>. This will + result in ambiguities between the definitions in the global namespace + (<ctype.h>) and the definitions in namespace std:: (<cctype>).
-
No <code>vector::at</code>, <code>deque::at</code>, <code>string::at</code> +
No <code>vector::at</code>, <code>deque::at</code>, <code>string::at</code> @@ -304,7 +305,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
-
No <code>std::char_traits<char>::eof</code> +
No <code>std::char_traits<char>::eof</code> @@ -321,7 +322,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
-
No <code>string::clear</code> +
No <code>string::clear</code> @@ -351,7 +352,7 @@ erase(size_type __pos = 0, size_type __n = npos)
-
+<section xml:id="backwards.second.ostreamform_istreamscan"><info><title> Removal of <code>ostream::form</code> and <code>istream::scan</code> extensions @@ -362,14 +363,14 @@ erase(size_type __pos = 0, size_type __n = npos)
-
No <code>basic_stringbuf</code>, <code>basic_stringstream</code> +
No <code>basic_stringbuf</code>, <code>basic_stringstream</code> Although the ISO standard i/ostringstream-classes are - provided, (sstream), for + provided, (<sstream>), for compatibility with older implementations the pre-ISO - i/ostrstream (strstream) interface is also provided, + i/ostrstream (<strstream>) interface is also provided, with these caveats: @@ -490,7 +491,7 @@ particular info iostream.
-
Little or no wide character support +
Little or no wide character support Classes wstring and @@ -499,7 +500,7 @@ particular info iostream.
-
No templatized iostreams +
No templatized iostreams Classes wfilebuf and @@ -507,7 +508,7 @@ particular info iostream.
-
Thread safety issues +
Thread safety issues @@ -601,11 +602,12 @@ libstdc++-v3. Portability notes and known implementation limitations are as follows. -
Pre-ISO headers moved to backwards or removed +
Pre-ISO headers moved to backwards or removed The pre-ISO C++ headers - (iostream.h, defalloc.h etc.) are + (<iostream.h>, + <defalloc.h> etc.) are available, unlike previous libstdc++ versions, but inclusion generates a warning that you are using deprecated headers. @@ -681,29 +683,30 @@ AC_DEFUN([AC_HEADER_PRE_STDCXX], [ Porting between pre-ISO headers and ISO headers is simple: headers -like vector.h can be replaced with vector and a using +like <vector.h> can be replaced with <vector> and a using directive using namespace std; can be put at the global scope. This should be enough to get this code compiling, assuming the other usage is correct.
-
Extension headers hash_map, hash_set moved to ext or backwards +
Extension headers hash_map, hash_set moved to ext or backwards At this time most of the features of the SGI STL extension have been replaced by standardized libraries. - In particular, the unordered_map and - unordered_set containers of TR1 and C++ 2011 are suitable - replacements for the non-standard hash_map and - hash_set containers in the SGI STL. + In particular, the unordered_map and + unordered_set containers of TR1 and C++ 2011 + are suitable replacements for the non-standard + hash_map and hash_set + containers in the SGI STL. - Header files hash_map and hash_set moved -to ext/hash_map and ext/hash_set, + Header files <hash_map> and <hash_set> moved +to <ext/hash_map> and <ext/hash_set>, respectively. At the same time, all types in these files are enclosed in namespace __gnu_cxx. Later versions deprecate -these files, and suggest using TR1's unordered_map -and unordered_set instead. +these files, and suggest using TR1's <unordered_map> +and <unordered_set> instead. The extensions are no longer in the global or std @@ -779,7 +782,7 @@ AC_DEFUN([AC_HEADER_EXT_HASH_SET], [
-
No <code>ios::nocreate/ios::noreplace</code>. +<section xml:id="backwards.third.nocreate_noreplace"><info><title>No <code>ios::nocreate/ios::noreplace</code>. @@ -798,7 +801,7 @@ and trunc (except for app ?).
-
+<section xml:id="backwards.third.streamattach"><info><title> No <code>stream::attach(int fd)</code> @@ -820,7 +823,7 @@ No stream::attach(int fd) An extension is available that implements this. - ext/stdio_filebuf.h contains a derived class called + <ext/stdio_filebuf.h> contains a derived class called __gnu_cxx::stdio_filebuf. This class can be constructed from a C FILE* or a file descriptor, and provides the fd() function. @@ -833,7 +836,7 @@ No stream::attach(int fd)
-
+<section xml:id="backwards.third.support_cxx98"><info><title> Support for C++98 dialect. @@ -909,7 +912,7 @@ AC_DEFUN([AC_HEADER_STDCXX_98], [
-
+<section xml:id="backwards.third.support_tr1"><info><title> Support for C++TR1 dialect. @@ -1001,7 +1004,7 @@ AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET], [
-
+<section xml:id="backwards.third.support_cxx11"><info><title> Support for C++11 dialect. @@ -1018,9 +1021,9 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ template <typename T> - struct check + struct check final { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); + static constexpr T value{ __cplusplus }; }; typedef check<check<bool>> right_angle_brackets; @@ -1029,8 +1032,10 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ decltype(a) b; typedef check<int> check_type; - check_type c; - check_type&& cr = c;],, + check_type c{}; + check_type&& cr = static_cast<check_type&&>(c); + + static_assert(check_type::value == 201103L, "C++11 compiler");],, ac_cv_cxx_compile_cxx11_native=yes, ac_cv_cxx_compile_cxx11_native=no) AC_LANG_RESTORE ]) @@ -1043,9 +1048,9 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ CXXFLAGS="$CXXFLAGS -std=c++11" AC_TRY_COMPILE([ template <typename T> - struct check + struct check final { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); + static constexpr T value{ __cplusplus }; }; typedef check<check<bool>> right_angle_brackets; @@ -1054,8 +1059,10 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ decltype(a) b; typedef check<int> check_type; - check_type c; - check_type&& cr = c;],, + check_type c{}; + check_type&& cr = static_cast<check_type&&>(c); + + static_assert(check_type::value == 201103L, "C++11 compiler");],, ac_cv_cxx_compile_cxx11_cxx=yes, ac_cv_cxx_compile_cxx11_cxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE @@ -1069,9 +1076,9 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ CXXFLAGS="$CXXFLAGS -std=gnu++11" AC_TRY_COMPILE([ template <typename T> - struct check + struct check final { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); + static constexpr T value{ __cplusplus }; }; typedef check<check<bool>> right_angle_brackets; @@ -1080,8 +1087,10 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ decltype(a) b; typedef check<int> check_type; - check_type c; - check_type&& cr = c;],, + check_type c{}; + check_type&& cr = static_cast<check_type&&>(c); + + static_assert(check_type::value == 201103L, "C++11 compiler");],, ac_cv_cxx_compile_cxx11_gxx=yes, ac_cv_cxx_compile_cxx11_gxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE @@ -1097,6 +1106,8 @@ AC_DEFUN([AC_COMPILE_STDCXX_11], [ Check for library coverage of the C++2011 standard. + (Some library headers are commented out in this check, they are + not currently provided by libstdc++). @@ -1124,6 +1135,7 @@ AC_DEFUN([AC_HEADER_STDCXX_11], [ #include <cmath> #include <csetjmp> #include <csignal> + // #include <cstdalign> #include <cstdarg> #include <cstdbool> #include <cstddef> @@ -1133,21 +1145,29 @@ AC_DEFUN([AC_HEADER_STDCXX_11], [ #include <cstring> #include <ctgmath> #include <ctime> + // #include <cuchar> #include <cwchar> #include <cwctype> #include <algorithm> #include <array> + #include <atomic> #include <bitset> + #include <chrono> + // #include <codecvt> #include <complex> + #include <condition_variable> #include <deque> #include <exception> + #include <forward_list> #include <fstream> #include <functional> + #include <future> #include <iomanip> #include <ios> #include <iosfwd> #include <iostream> + #include <initializer_list> #include <istream> #include <iterator> #include <limits> @@ -1155,19 +1175,25 @@ AC_DEFUN([AC_HEADER_STDCXX_11], [ #include <locale> #include <map> #include <memory> + #include <mutex> #include <new> #include <numeric> #include <ostream> #include <queue> #include <random> + #include <ratio> #include <regex> + #include <scoped_allocator> #include <set> #include <sstream> #include <stack> #include <stdexcept> #include <streambuf> #include <string> + #include <system_error> + #include <thread> #include <tuple> + #include <typeindex> #include <typeinfo> #include <type_traits> #include <unordered_map> @@ -1186,7 +1212,8 @@ AC_DEFUN([AC_HEADER_STDCXX_11], [ ]) -As is the case for TR1 support, these autoconf macros can be made for a finer-grained, per-header-file check. For <unordered_map> +As is the case for TR1 support, these autoconf macros can be made for a finer-grained, per-header-file check. For +<unordered_map> @@ -1243,8 +1270,8 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
-
- Container::iterator_type is not necessarily Container::value_type* +<section xml:id="backwards.third.iterator_type"><info><title> + <code>Container::iterator_type</code> is not necessarily <code>Container::value_type*</code> -- cgit v1.2.1 From 9efaf576cea19c6a1c5272af7e5c9eba26152c91 Mon Sep 17 00:00:00 2001 From: redi Date: Mon, 7 Nov 2011 08:46:58 +0000 Subject: * acinclude.m4: Check for * configure: Regenerate. * config.h.in: Likewise. * include/Makefile.am: Add . * include/Makefile.in: Regenerate. * include/c_global/cstdalign: New. * testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: New. * doc/xml/manual/backwards_compatibility.xml: Update. * doc/xml/manual/status_cxx2011.xml: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181076 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/doc/xml/manual/backwards_compatibility.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxx2011.xml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'libstdc++-v3/doc/xml/manual') diff --git a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml index b69ac4d12d2..525157f1814 100644 --- a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml +++ b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml @@ -1135,7 +1135,7 @@ AC_DEFUN([AC_HEADER_STDCXX_11], [ #include <cmath> #include <csetjmp> #include <csignal> - // #include <cstdalign> + #include <cstdalign> #include <cstdarg> #include <cstdbool> #include <cstddef> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 7f0625492b2..2715b2a77ab 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -253,11 +253,10 @@ particular release. - 18.10 Other runtime support - Partial - Missing <cstdalign> + Y + -- cgit v1.2.1