commit 045ffeb6b5cdd336ebe7592dbec68c0d53cd0c0c Author: Jonathan Wakely Date: Wed Oct 25 15:01:31 2017 +0100 Update C++17 library status documentation * doc/xml/manual/status_cxx1998.xml: Correct statement about what the doc covers. * doc/xml/manual/status_cxx2011.xml: Likewise. * doc/xml/manual/status_cxx2014.xml: Likewise. * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and information on feature-test macros. * doc/xml/manual/status_cxxtr1.xml: Correct statement about what the doc covers. * doc/xml/manual/status_cxxtr24733.xml: Likewise. * doc/html/*: Regenerate. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml index 6afb016a45f..ffdc878ffe8 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml @@ -18,8 +18,7 @@ This status table is based on the table of contents of ISO/IEC 14882:2003. -This page describes the C++ support in mainline GCC SVN, not in any -particular release. +This page describes the C++ support in the GCC 7 series. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 705f2eecc60..b72c5f7810d 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -27,8 +27,7 @@ presence of the required flag. -This page describes the C++11 support in mainline GCC SVN, not in any -particular release. +This page describes the C++11 support in the GCC 7 series. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml index 6fa5a1d93a3..557e63888e4 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml @@ -20,8 +20,7 @@ presence of the required flag. -This page describes the C++14 and library TS support in mainline GCC SVN, -not in any particular release. +This page describes the C++14 and library TS support in the GCC 7 series. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml index 6158f96105f..389daefd75d 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml @@ -1,17 +1,17 @@
- + xml:id="status.iso.2017" xreflabel="Status C++ 2017"> + -C++ 201z +C++ 2017 ISO C++ - 201z + 2017 -In this implementation the -std=gnu++1z or --std=c++1z flag must be used to enable language +In this implementation the -std=gnu++17 or +-std=c++17 flag must be used to enable language and library features. See dialect options. The pre-defined symbol @@ -20,13 +20,12 @@ presence of the required flag. -This section describes the C++1z and library TS support in mainline GCC SVN, -not in any particular release. +This section describes the C++17 and library TS support in the GCC 7 series. The following table lists new library features that have been accepted into -the C++1z working draft. The "Proposal" column provides a link to the +the C++17 working draft. The "Proposal" column provides a link to the ISO C++ committee proposal that describes the feature, while the "Status" column indicates the first version of GCC that contains an implementation of this feature (if it has been implemented). @@ -35,8 +34,8 @@ The "SD-6 Feature Test" column shows the corresponding macro or header from Feature-testing recommendations for C++. -
-C++ 201z Implementation Status +
+C++ 2017 Implementation Status @@ -75,7 +74,7 @@ Feature-testing recommendations for C++. P0137R1 - 7 + 7.1 __cpp_lib_launder >= 201606 @@ -97,9 +96,10 @@ Feature-testing recommendations for C++. P0088R3 - 7 + 7.1 __has_include(<variant>), __cpp_lib_variant >= 201603 + (since 7.3, see Note 1) @@ -110,9 +110,10 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __has_include(<optional>), __cpp_lib_optional >= 201603 + (since 7.3, see Note 1) @@ -123,9 +124,10 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __has_include(<any>), __cpp_lib_any >= 201603 + (since 7.3, see Note 1) @@ -136,9 +138,10 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __has_include(<string_view>), __cpp_lib_string_view >= 201603 + (since 7.3, see Note 1) @@ -163,7 +166,7 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __cpp_lib_apply >= 201603 @@ -174,7 +177,7 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __cpp_lib_shared_ptr_arrays >= 201603 @@ -185,7 +188,7 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __cpp_lib_boyer_moore_searcher >= 201603 @@ -196,7 +199,7 @@ Feature-testing recommendations for C++. P0220R1 - 7 + 7.1 __cpp_lib_sample >= 201603 @@ -207,7 +210,7 @@ Feature-testing recommendations for C++. P0007R1 - 7 + 7.1 __cpp_lib_as_const >= 201510 @@ -229,7 +232,7 @@ Feature-testing recommendations for C++. P0209R2 - 7 + 7.1 __cpp_lib_make_from_tuple >= 201606 @@ -267,7 +270,7 @@ Feature-testing recommendations for C++. P0074R0 - 7 + 7.1 __cpp_lib_transparent_operators >= 201510 @@ -278,7 +281,7 @@ Feature-testing recommendations for C++. LWG2296 - 7 + 7.1 __cpp_lib_addressof_constexpr >= 201603 @@ -311,7 +314,7 @@ Feature-testing recommendations for C++. P0033R1 - 7 + 7.1 __cpp_lib_enable_shared_from_this >= 201603 @@ -344,7 +347,7 @@ Feature-testing recommendations for C++. P0005R4 - 7 + 7.1 __cpp_lib_not_fn >= 201603 @@ -355,7 +358,7 @@ Feature-testing recommendations for C++. P0358R1 - 7 + 7.1 @@ -366,7 +369,7 @@ Feature-testing recommendations for C++. P0253R1 - 7 + 7.1 @@ -377,7 +380,7 @@ Feature-testing recommendations for C++. P0040R3 - 7 + 7.1 @@ -388,7 +391,7 @@ Feature-testing recommendations for C++. P0163R0 - 7 + 7.1 __cpp_lib_shared_ptr_weak_type >= 201606 @@ -421,7 +424,7 @@ Feature-testing recommendations for C++. P0006R0 - 7 + 7.1 __cpp_lib_type_trait_variable_templates >= 201510 @@ -454,7 +457,7 @@ Feature-testing recommendations for C++. P0077R2 - 7 + 7.1 __cpp_lib_is_callable >= 201603 @@ -465,7 +468,7 @@ Feature-testing recommendations for C++. P0258R2 - 7 + 7.1 __cpp_lib_has_unique_object_representations >= 201606 @@ -476,7 +479,7 @@ Feature-testing recommendations for C++. P0092R1 - 7 + 7.1 __cpp_lib_chrono >= 201510 @@ -487,8 +490,10 @@ Feature-testing recommendations for C++. P0505R0 - 7 - ??? + 7.1 + __cpp_lib_chrono >= 201611 + (since 7.3, see Note 2) + @@ -509,7 +514,7 @@ Feature-testing recommendations for C++. P0254R2 - 7 + 7.1 @@ -520,7 +525,7 @@ Feature-testing recommendations for C++. P0272R1 - 7 + 7.1 @@ -553,9 +558,9 @@ Feature-testing recommendations for C++. N4510 - 6.2 (3.0) + 3.0 __cpp_lib_incomplete_container_elements >= 201505 - (the feature was always supported, but the macro was not defined until GCC 6.2) + (since 6.2, see Note 2) @@ -566,8 +571,8 @@ Feature-testing recommendations for C++. P0084R2 - 7 - ??? + 7.1 + @@ -590,7 +595,7 @@ Feature-testing recommendations for C++. P0083R3 - 7 + 7.1 __cpp_lib_node_extract >= 201606 @@ -612,7 +617,7 @@ Feature-testing recommendations for C++. P0031R0 - 7 + 7.1 __cpp_lib_array_constexpr >= 201603 @@ -638,7 +643,7 @@ Feature-testing recommendations for C++. P0025R0 - 7 + 7.1 __cpp_lib_clamp >= 201603 @@ -649,7 +654,7 @@ Feature-testing recommendations for C++. P0295R0 - 7 + 7.1 __cpp_lib_gcd_lcm >= 201606 @@ -660,7 +665,7 @@ Feature-testing recommendations for C++. P0030R1 - 7 + 7.1 __cpp_lib_hypot >= 201603 @@ -671,11 +676,9 @@ Feature-testing recommendations for C++. P0226R1 - 7 (6.1) + 7.1 __cpp_lib_math_special_functions >= 201603 - (for GCC 6 or pre-C++17 define - __STDCPP_WANT_MATH_SPEC_FUNCS__ to a non-zero value - and test for __STDCPP_MATH_SPEC_FUNCS__ >= 201003L) + (see Note 3) @@ -701,7 +704,7 @@ Feature-testing recommendations for C++. No - + __cpp_lib_filesystem >= 201606 @@ -713,17 +716,29 @@ Feature-testing recommendations for C++. No - + __cpp_lib_filesystem >= 201606 + + Directory Entry Caching for Filesystem + + + P0317R1 + + + No + __cpp_lib_filesystem >= 201703 + + + constexpr atomic<T>::is_always_lock_free P0152R1 - 7 + 7.1 __cpp_lib_atomic_is_always_lock_free >= 201603 @@ -739,37 +754,39 @@ Feature-testing recommendations for C++. - Variadic lock_guard + Variadic lock_guard (Rev. 5) P0156R2 - 7 + 7.1 __cpp_lib_scoped_lock >= 201703 - byte type definition + A byte type definition P0298R3 - 7 - ??? + 7.1 + __cpp_lib_byte >= 201603 (since 7.3, see Note 2) + - + Elementary string conversions P0067R5 - No - ??? + 8 (only integral types supported) + __has_include(<charconv>) + __cpp_lib_to_chars >= 201611 @@ -777,8 +794,26 @@ Feature-testing recommendations for C++.
+ +Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the +__cpp_lib macro is not defined, and compilation will fail if the +header is included without using to enable C++17 support. + - + +Note 2: This feature is supported in older releases but the +__cpp_lib macro is not defined to the right value +(or not defined at all) until the version shown in parentheses. + + + +Note 3: The mathematical special functions are enabled in C++17 mode from +GCC 7.1 onwards. For GCC 6.x or for C++11/C++14 define +__STDCPP_WANT_MATH_SPEC_FUNCS__ to a non-zero value +and test for __STDCPP_MATH_SPEC_FUNCS__ >= 201003L. + + +
C++ Technical Specifications Implementation Status diff --git a/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml b/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml index 32ad20a2fb2..fac93ae44d1 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml @@ -22,8 +22,7 @@ In this implementation the header names are prefixed by -This page describes the TR1 support in mainline GCC SVN, not in any particular -release. +This page describes the TR1 support in the GCC 7 series. diff --git a/libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml b/libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml index e8d445116a2..537688d4e17 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml @@ -16,8 +16,7 @@ decimal floating-point arithmetic -This page describes the TR 24733 support in mainline GCC SVN, not in any -particular release. +This page describes the TR 24733 support in the GCC 7 series.