From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id 2F4073858CDB; Mon, 18 Sep 2023 13:11:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2F4073858CDB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1695042688; bh=Rf/m+4AokA/jeehJLrtCst+kPCDNKV8vc3lQUaw4Z/k=; h=From:To:Subject:Date:From; b=hFiXyjaeUjjKfZQBoQNNMehZKjiV2vtmhQA/HwljgEADUWGEmH0g8SXiTChA7ZJ4d 9QcPYPfQv0WUy/RQ78oNx2KeGP0DLJfAz43bYkiIWffqEr515//Xld01xqtsKGrADf UQ+79Gbhpldk1ei13rbaPbH+PlGXeQulcSNqPlIA= MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r14-4100] libstdc++: Update C++20 and C++23 status docs X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: 4260f4af4dde6dbf85c28da7e8aaf03985b3d171 X-Git-Newrev: c8e9a75085f9725c5b5f32a27867c106fed3b5fb Message-Id: <20230918131128.2F4073858CDB@sourceware.org> Date: Mon, 18 Sep 2023 13:11:28 +0000 (GMT) List-Id: https://gcc.gnu.org/g:c8e9a75085f9725c5b5f32a27867c106fed3b5fb commit r14-4100-gc8e9a75085f9725c5b5f32a27867c106fed3b5fb Author: Jonathan Wakely Date: Sat May 6 22:02:51 2023 +0100 libstdc++: Update C++20 and C++23 status docs libstdc++-v3/ChangeLog: * doc/xml/manual/configure.xml: Use conventional option name. * doc/xml/manual/status_cxx2020.xml: Update. * doc/xml/manual/status_cxx2023.xml: Update. * doc/html/*: Regenerate. Diff: --- libstdc++-v3/doc/html/manual/configure.html | 4 +- libstdc++-v3/doc/html/manual/status.html | 255 +++++++++++-- libstdc++-v3/doc/xml/manual/configure.xml | 4 +- libstdc++-v3/doc/xml/manual/status_cxx2020.xml | 44 +-- libstdc++-v3/doc/xml/manual/status_cxx2023.xml | 474 ++++++++++++++++++++++++- 5 files changed, 717 insertions(+), 64 deletions(-) diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html index c81e5993b08..346b5d345cd 100644 --- a/libstdc++-v3/doc/html/manual/configure.html +++ b/libstdc++-v3/doc/html/manual/configure.html @@ -208,8 +208,8 @@ C++ includes. If enabled (as by default), and the compiler seems capable of passing the simple sanity checks thrown at it, try to build stdc++.h.gch as part of the make process. - In addition, this generated file is used later on (by appending - --include bits/stdc++.h to CXXFLAGS) when running the + In addition, this generated file is used later on (by appending + -include bits/stdc++.h to CXXFLAGS) when running the testsuite.

--enable-extern-template[default]

Use extern template to pre-instantiate all required specializations for certain types defined in the standard libraries. diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index d046bd2de47..00a7c2556f3 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1325,10 +1325,10 @@ or any notes about the implementation. 9.1 __cpp_lib_type_identity >= 201806L (since 9.4, see Note 1) unwrap_ref_decay and unwrap_reference P0318R1 - 9.1 __cpp_lib_unwrap_ref >= 201811L (since 9.4, see Note 1) Improving Completeness Requirements for Type Traits + 9.1 __cpp_lib_unwrap_ref >= 201811L (since 9.4, see Note 1) Improving Completeness Requirements for Type Traits P1285R0 - Partial   Missing feature test macros + — Most misuses are diagnosed, but not all. Missing feature test macros P1353R0 9.1   Making std::underlying_type SFINAE-friendly @@ -1411,15 +1411,15 @@ or any notes about the implementation. 10.1   Ranges Design Cleanup P1252R2 - 10.1   Avoid template bloat for safe_ranges in combination with ‘subrange-y’ view adaptors. + 10.1   Avoid template bloat for safe_ranges in combination with ‘subrange-y’ view adaptors. P1739R4 -   + 12.1   Time, dates, calendars, time zones - Extending chrono to Calendars and Time Zones + Extending chrono to Calendars and Time Zones P0355R7 -   __cpp_lib_chrono >= 201803L Miscellaneous minor fixes for chrono + 14.1 (see Note 2) __cpp_lib_chrono >= 201803L Miscellaneous minor fixes for chrono P1466R3   __cpp_lib_chrono >= 201907L <chrono> zero(), min(), and max() should be noexcept @@ -1449,28 +1449,28 @@ or any notes about the implementation. 9.1 __cpp_lib_char8_t >= 201811L char8_t backward compatibility remediation P1423R3 - 10.1 __cpp_lib_char8_t >= 201907L Text formatting + 10.1 __cpp_lib_char8_t >= 201907L Text formatting P0645R10 - + 13.1 __cpp_lib_format >= 201907L - Integration of chrono with text formatting + Integration of chrono with text formatting P1361R2 - + 13.1 __cpp_lib_format >= 201907L - Printf corner cases in std::format + Printf corner cases in std::format P1652R1 - + 13.1 __cpp_lib_format >= 201907L String Prefix and Suffix Checking P0457R2 - 9.1 __cpp_lib_starts_ends_with >= 201711L (since 9.4, see Note 1) Update The Reference To The Unicode Standard + 9.1 __cpp_lib_starts_ends_with >= 201711L (since 9.4, see Note 1) Update The Reference To The Unicode Standard P1025R1 -   + —  Containers span: bounds-safe views for sequences of objects @@ -1492,10 +1492,10 @@ or any notes about the implementation. 10.1 __cpp_lib_to_array >= 201907L Checking for Existence of an Element in Associative Containers P0458R2 - 9.1   Comparing Unordered Containers + 9.1   Comparing Unordered Containers P0809R0 -   Heterogeneous lookup for unordered containers + —   Heterogeneous lookup for unordered containers P0919R3 11.1 __cpp_lib_generic_unordered_lookup >= 201811 Refinement Proposal for P0919 @@ -1570,7 +1570,7 @@ or any notes about the implementation. 9.1   Thou Shalt Not Specialize std Function Templates! P0551R3 -   Bit-casting object representations + These changes will not be implemented. Bit-casting object representations P0476R2 11.1 __cpp_lib_bit_cast >= 201806L Integral power-of-2 operations @@ -1591,10 +1591,10 @@ or any notes about the implementation. —   Add shift to <algorithm> P0769R2 - 10.1 __cpp_lib_shift >= 201806L Standard Library Specification in a Concepts and Contracts World + 10.1 __cpp_lib_shift >= 201806L Standard Library Specification in a Concepts and Contracts World P0788R3 -   explicit(bool) + —   explicit(bool) P0892R2 —   Eradicating unnecessarily explicit default constructors from the standard library @@ -1630,10 +1630,10 @@ or any notes about the implementation. 7.1   Editorial Guidance for merging P0019r8 and P0528r3 P1123R0 - —   Cleaning up Clause 20 + —   Cleaning up Clause 20 P1148R0 -   Completing the Rebase of Library Fundamentals, Version 3, Working Draft + —   Completing the Rebase of Library Fundamentals, Version 3, Working Draft P1210R0   Alternative Wording for P0907R4 Signed Integers are Two's Complement @@ -1669,13 +1669,13 @@ or any notes about the implementation. P1463R1 - 10.1   + 10.1   Mandating the Standard Library: Clause 22 - Iterators library P1464R1 -   Make create_directory() Intuitive + —   Make create_directory() Intuitive P1164R1 @@ -1711,6 +1711,10 @@ or any notes about the implementation. Note 1: 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 2: The C++20 calendar types are supported since 11.1, +time zones and UTC are supported since 13.1, +and chrono::parse is supported since 14.1.

C++ 2023

In this implementation the -std=gnu++23 or -std=c++23 flag must be used to enable language @@ -1780,11 +1784,88 @@ or any notes about the implementation. P1659R3 - __cpp_lib_ranges_starts_ends_with >= 202106L zip + __cpp_lib_ranges_starts_ends_with >= 202106L zip P2321R2 - __cpp_lib_ranges_zip >= 202110L + 13.1 __cpp_lib_ranges_zip >= 202110L views::repeat + + P2474R2 + + 13.1 __cpp_lib_ranges_repeat >= 202207L views::enumerate + + P2164R9 + + 13.1 __cpp_lib_ranges_enumerate >= 202302L views::join_with + + P2441R2 + + 13.1 __cpp_lib_ranges_join_with >= 202202L + Windowing range adaptors: views::chunk + and views::slide + + P2442R2 + + 13.1 __cpp_lib_ranges_slide >= 202202L views::chunk_by + + P2443R1 + + 13.1 __cpp_lib_ranges_chunk_by >= 202202L views::stride + + P1899R3 + + 13.1 __cpp_lib_ranges_stride >= 202207L views::cartesian_product + + P2374R4 + + 13.1 __cpp_lib_ranges_cartesian_product >= 202207L Empty Product for certain Views + + P2540R1 + + 13.1 __cpp_lib_ranges_cartesian_product >= 202207L views::as_rvalue + + P2446R2 + + 13.1 __cpp_lib_ranges_as_rvalue >= 202207L + cbegin should always return a constant iterator + + + P2278R4 + + 13.1 __cpp_lib_ranges_as_const >= 202207L ranges::to + + P1206R7 + + __cpp_lib_ranges_to_container >= 202202L Pipe support for user-defined range adaptors + + P2387R3 + + 13.1 + __cpp_lib_bind_pack >= 202202L, + __cpp_lib_ranges >= 202202L + + ranges::iota, ranges::shift_left, + and ranges::shift_right + + + P2440R1 + + 13.1 (ranges::iota) + __cpp_lib_ranges_iota >= 202202L, + __cpp_lib_shift >= 202202L + ranges::find_last + + P1223R5 + + 13.1 __cpp_lib_ranges_find_last >= 202207L ranges::contains + + P2302R4 + + 13.1 __cpp_lib_ranges_contains >= 202207L ranges::fold + + P2322R6 + + 13.1 __cpp_lib_ranges_fold >= 202207L Compile-time programming A proposal for a type trait to detect scoped enumerations @@ -1818,11 +1899,11 @@ or any notes about the implementation. P1413R3 -   A type trait to detect reference binding to temporary +   A type trait to detect reference binding to temporary P2255R2 - __cpp_lib_reference_from_temporary >= 202202L + 13.1 (missing changes to std::tuple __cpp_lib_reference_from_temporary >= 202202L Strings and text string contains function @@ -1854,7 +1935,101 @@ or any notes about the implementation. P2077R3 - __cpp_lib_associative_heterogeneous_erasure >= 202110L + __cpp_lib_associative_heterogeneous_erasure >= 202110L <flat_map> + + P0429R9 + + __cpp_lib_flat_map >= 202207L <flat_set> + + P1222R4 + + __cpp_lib_flat_set >= 202207L mdspan + + P0009R18 + + __cpp_lib_mdspan >= 202207L + index_type & size_type + in mdspan + + + P2599R2 + + __cpp_lib_mdspan >= 202207L + mdspan: rename pointer and + contiguous + + + P2604R0 + + __cpp_lib_mdspan >= 202207L Add the missing empty to mdspan + + P2613R1 + + __cpp_lib_mdspan >= 202207L + layout_stride static extents default constructor fix + + + P2763R1 + +   + Strings and text + std::format improvements + + P2216R3 + + 13.1 __cpp_lib_format >= 202106L + Add support for std::generator-like types to + std::format + + + P2418R2 + + 13.1 __cpp_lib_format >= 202110L + Expose std::basic-format-string<charT, Args...> + + + P2508R1 + + 13.1 (feature test macro not defined) __cpp_lib_format >= 202207L + Clarify handling of encodings in localized formatting of chrono types + + + P2419R2 + + __cpp_lib_format >= 202207L Formatting Ranges + + P2286R8 + + __cpp_lib_format_ranges >= 202207L Improve default container formatting + + P2585R1 + + __cpp_lib_format_ranges >= 202207L Formatted output + + P2093R14 + + __cpp_lib_print >= 202207L + Should the output of std::print to a terminal be synchronized with + the underlying stream? + + + P2539R3 + +   + Formatting thread::id and stacktrace + + + P2693R1 + + 14.1 __cpp_lib_formatters >= 202302L + Add Constexpr Modifiers to Functions to_chars and + from_chars for Integral Types in + <charconv> Header + + + P2291R3 + + 13.1 __cpp_lib_constexpr_charconv >= 202207L Miscellaneous Inheriting from std::variant @@ -1876,11 +2051,21 @@ or any notes about the implementation. P0323R12 - 12.1 __cpp_lib_expected >= 202202L Monadic operations for std::optional + 12.1 __cpp_lib_expected >= 202202L Monadic operations for std::expected + + P2505R5 + + 13.1 __cpp_lib_expected >= 202211L Monadic operations for std::optional P0798R8 - 12.1 __cpp_lib_optional >= 202110L move_only_function + 12.1 __cpp_lib_optional >= 202110L + Compatibility between tuple, pair + and tuple-like objects + + P2165R4 + + __cpp_lib_tuple_like >= 202207L move_only_function P0288R9 @@ -1900,7 +2085,15 @@ or any notes about the implementation. P2401R0 - 12.1   Support C atomics in C++ + 12.1   A more constexpr bitset + + P2417R2 + + 13.1 __cpp_lib_constexpr_bitset >= 202207L Extended floating-point types and standard names + + P1467R9 + + 13.1   Support C atomics in C++ P0943R6 diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml index 1b8c37ce2a9..0a477ab85e5 100644 --- a/libstdc++-v3/doc/xml/manual/configure.xml +++ b/libstdc++-v3/doc/xml/manual/configure.xml @@ -341,8 +341,8 @@ C++ includes. If enabled (as by default), and the compiler seems capable of passing the simple sanity checks thrown at it, try to build stdc++.h.gch as part of the make process. - In addition, this generated file is used later on (by appending - --include bits/stdc++.h to CXXFLAGS) when running the + In addition, this generated file is used later on (by appending + -include bits/stdc++.h to CXXFLAGS) when running the testsuite. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index da911169cc8..6e560069cbc 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -251,14 +251,13 @@ or any notes about the implementation. - Improving Completeness Requirements for Type Traits P1285R0 - Partial - + + Most misuses are diagnosed, but not all. @@ -541,13 +540,12 @@ or any notes about the implementation. - Avoid template bloat for safe_ranges in combination with ‘subrange-y’ view adaptors. P1739R4 - + 12.1 @@ -559,18 +557,16 @@ or any notes about the implementation. - Extending chrono to Calendars and Time Zones P0355R7 - + 14.1 (see Note 2) __cpp_lib_chrono >= 201803L - Miscellaneous minor fixes for chrono @@ -667,39 +663,36 @@ or any notes about the implementation. - Text formatting P0645R10 - + 13.1 __cpp_lib_format >= 201907L - Integration of chrono with text formatting P1361R2 - + 13.1 __cpp_lib_format >= 201907L - Printf corner cases in std::format P1652R1 - + 13.1 __cpp_lib_format >= 201907L @@ -716,13 +709,12 @@ or any notes about the implementation. - Update The Reference To The Unicode Standard P1025R1 - + @@ -796,13 +788,12 @@ or any notes about the implementation. - Comparing Unordered Containers P0809R0 - + @@ -1039,7 +1030,7 @@ or any notes about the implementation. P0551R3 - + These changes will not be implemented. @@ -1113,13 +1104,12 @@ or any notes about the implementation. - Standard Library Specification in a Concepts and Contracts World P0788R3 - + @@ -1244,13 +1234,12 @@ or any notes about the implementation. - Cleaning up Clause 20 P1148R0 - + @@ -1341,7 +1330,6 @@ or any notes about the implementation. - Mandating the Standard Library: Clause 22 - Iterators library @@ -1350,7 +1338,7 @@ or any notes about the implementation. P1464R1 - + @@ -1459,4 +1447,10 @@ Note 1: This feature is supported in older releases but the (or not defined at all) until the version shown in parentheses. + +Note 2: The C++20 calendar types are supported since 11.1, +time zones and UTC are supported since 13.1, +and chrono::parse is supported since 14.1. + + diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2023.xml b/libstdc++-v3/doc/xml/manual/status_cxx2023.xml index f23c64d6a29..9d121af82df 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2023.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2023.xml @@ -187,17 +187,207 @@ or any notes about the implementation. - zip P2321R2 - + 13.1 __cpp_lib_ranges_zip >= 202110L + + views::repeat + + + P2474R2 + + + 13.1 + __cpp_lib_ranges_repeat >= 202207L + + + + views::enumerate + + + P2164R9 + + + 13.1 + __cpp_lib_ranges_enumerate >= 202302L + + + + views::join_with + + + P2441R2 + + + 13.1 + __cpp_lib_ranges_join_with >= 202202L + + + + + Windowing range adaptors: views::chunk + and views::slide + + + P2442R2 + + + 13.1 + __cpp_lib_ranges_slide >= 202202L + + + + views::chunk_by + + + P2443R1 + + + 13.1 + __cpp_lib_ranges_chunk_by >= 202202L + + + + views::stride + + + P1899R3 + + + 13.1 + __cpp_lib_ranges_stride >= 202207L + + + + views::cartesian_product + + + P2374R4 + + + 13.1 + __cpp_lib_ranges_cartesian_product >= 202207L + + + + Empty Product for certain Views + + + P2540R1 + + + 13.1 + __cpp_lib_ranges_cartesian_product >= 202207L + + + + views::as_rvalue + + + P2446R2 + + + 13.1 + __cpp_lib_ranges_as_rvalue >= 202207L + + + + + cbegin should always return a constant iterator + + + + P2278R4 + + + 13.1 + __cpp_lib_ranges_as_const >= 202207L + + + + + ranges::to + + + P1206R7 + + + + __cpp_lib_ranges_to_container >= 202202L + + + + Pipe support for user-defined range adaptors + + + P2387R3 + + + 13.1 + + __cpp_lib_bind_pack >= 202202L, + __cpp_lib_ranges >= 202202L + + + + + + + ranges::iota, ranges::shift_left, + and ranges::shift_right + + + + P2440R1 + + + 13.1 (ranges::iota) + + __cpp_lib_ranges_iota >= 202202L, + __cpp_lib_shift >= 202202L + + + + + ranges::find_last + + + P1223R5 + + + 13.1 + __cpp_lib_ranges_find_last >= 202207L + + + + ranges::contains + + + P2302R4 + + + 13.1 + __cpp_lib_ranges_contains >= 202207L + + + + ranges::fold + + + P2322R6 + + + 13.1 + __cpp_lib_ranges_fold >= 202207L + + Compile-time programming @@ -294,14 +484,14 @@ or any notes about the implementation. - + A type trait to detect reference binding to temporary P2255R2 - + 13.1 (missing changes to std::tuple __cpp_lib_reference_from_temporary >= 202202L @@ -395,6 +585,235 @@ or any notes about the implementation. __cpp_lib_associative_heterogeneous_erasure >= 202110L + + + <flat_map> + + + P0429R9 + + + + __cpp_lib_flat_map >= 202207L + + + + + <flat_set> + + + P1222R4 + + + + __cpp_lib_flat_set >= 202207L + + + + + mdspan + + + P0009R18 + + + + __cpp_lib_mdspan >= 202207L + + + + + + index_type & size_type + in mdspan + + + + P2599R2 + + + + __cpp_lib_mdspan >= 202207L + + + + + + mdspan: rename pointer and + contiguous + + + + P2604R0 + + + + __cpp_lib_mdspan >= 202207L + + + + + Add the missing empty to mdspan + + + P2613R1 + + + + __cpp_lib_mdspan >= 202207L + + + + + + layout_stride static extents default constructor fix + + + + P2763R1 + + + + + + + + + Strings and text + + + + + std::format improvements + + + P2216R3 + + + 13.1 + __cpp_lib_format >= 202106L + + + + + Add support for std::generator-like types to + std::format + + + + P2418R2 + + + 13.1 + __cpp_lib_format >= 202110L + + + + + Expose std::basic-format-string<charT, Args...> + + + + P2508R1 + + + 13.1 (feature test macro not defined) + __cpp_lib_format >= 202207L + + + + + + Clarify handling of encodings in localized formatting of chrono types + + + + P2419R2 + + + + __cpp_lib_format >= 202207L + + + + + Formatting Ranges + + + P2286R8 + + + + __cpp_lib_format_ranges >= 202207L + + + + + Improve default container formatting + + + P2585R1 + + + + __cpp_lib_format_ranges >= 202207L + + + + + Formatted output + + + P2093R14 + + + + __cpp_lib_print >= 202207L + + + + + + Should the output of std::print to a terminal be synchronized with + the underlying stream? + + + + P2539R3 + + + + + + + + + Formatting thread::id and stacktrace + + + + P2693R1 + + + 14.1 + __cpp_lib_formatters >= 202302L + + + + + Add Constexpr Modifiers to Functions to_chars and + from_chars for Integral Types in + <charconv> Header + + + + P2291R3 + + + 13.1 + __cpp_lib_constexpr_charconv >= 202207L + + Miscellaneous @@ -456,6 +875,17 @@ or any notes about the implementation. __cpp_lib_expected >= 202202L + + Monadic operations for std::expected + + + P2505R5 + + + 13.1 + __cpp_lib_expected >= 202211L + + Monadic operations for std::optional @@ -467,6 +897,20 @@ or any notes about the implementation. __cpp_lib_optional >= 202110L + + + + Compatibility between tuple, pair + and tuple-like objects + + + P2165R4 + + + + __cpp_lib_tuple_like >= 202207L + + move_only_function @@ -522,6 +966,28 @@ or any notes about the implementation. + + A more constexpr bitset + + + P2417R2 + + + 13.1 + __cpp_lib_constexpr_bitset >= 202207L + + + + Extended floating-point types and standard names + + + P1467R9 + + + 13.1 + + + Support C atomics in C++