public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-4100] libstdc++: Update C++20 and C++23 status docs
@ 2023-09-18 13:11 Jonathan Wakely
0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2023-09-18 13:11 UTC (permalink / raw)
To: gcc-cvs, libstdc++-cvs
https://gcc.gnu.org/g:c8e9a75085f9725c5b5f32a27867c106fed3b5fb
commit r14-4100-gc8e9a75085f9725c5b5f32a27867c106fed3b5fb
Author: Jonathan Wakely <jwakely@redhat.com>
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 <code class="code">
- --include bits/stdc++.h </code> to CXXFLAGS) when running the
+ In addition, this generated file is used later on (by appending
+ <code class="code">-include bits/stdc++.h</code> to CXXFLAGS) when running the
testsuite.
</p></dd><dt><span class="term"><code class="code">--enable-extern-template</code>[default]</span></dt><dd><p>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.
</td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_type_identity >= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> <code class="code">unwrap_ref_decay</code> and <code class="code">unwrap_reference</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf" target="_top">
P0318R1 </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_unwrap_ref >= 201811L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Improving Completeness Requirements for Type Traits </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_unwrap_ref >= 201811L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Improving Completeness Requirements for Type Traits </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf" target="_top">
P1285R0 </a>
- </td><td align="center"> Partial </td><td align="left"> </td></tr><tr><td align="left"> Missing feature test macros </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> Most misuses are diagnosed, but not all. </td></tr><tr><td align="left"> Missing feature test macros </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html" target="_top">
P1353R0 </a>
</td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Making std::underlying_type SFINAE-friendly </td><td align="left">
@@ -1411,15 +1411,15 @@ or any notes about the implementation.
</td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Ranges Design Cleanup </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf" target="_top">
P1252R2 </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Avoid template bloat for <code class="code">safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Avoid template bloat for <code class="code">safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1739r4.html" target="_top">
P1739R4 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Time, dates, calendars, time zones</strong></span>
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending chrono to Calendars and Time Zones </td><td align="left">
+ </td></tr><tr><td align="left"> Extending chrono to Calendars and Time Zones </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html" target="_top">
P0355R7 </a>
- </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono >= 201803L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Miscellaneous minor fixes for chrono </td><td align="left">
+ </td><td align="left"> 14.1 (see Note 2) </td><td align="left"> <code class="code">__cpp_lib_chrono >= 201803L</code> </td></tr><tr><td align="left"> Miscellaneous minor fixes for chrono </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html" target="_top">
P1466R3 </a>
</td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono >= 201907L</code> </td></tr><tr><td align="left"> <code class="code"><chrono></code> <code class="code">zero()</code>, <code class="code">min()</code>, and <code class="code">max()</code> should be <code class="code">noexcept</code> </td><td align="left">
@@ -1449,28 +1449,28 @@ or any notes about the implementation.
</td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t >= 201811L</code> </td></tr><tr><td align="left"> <code class="code">char8_t</code> backward compatibility remediation </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html" target="_top">
P1423R3 </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t >= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Text formatting </td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t >= 201907L</code> </td></tr><tr><td align="left"> Text formatting </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html" target="_top">
P0645R10 </a>
- </td><td align="center"> </td><td align="left">
+ </td><td align="center"> 13.1 </td><td align="left">
<code class="code">__cpp_lib_format >= 201907L</code>
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Integration of chrono with text formatting </td><td align="left">
+ </td></tr><tr><td align="left"> Integration of chrono with text formatting </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf" target="_top">
P1361R2 </a>
- </td><td align="center"> </td><td align="left">
+ </td><td align="center"> 13.1 </td><td align="left">
<code class="code">__cpp_lib_format >= 201907L</code>
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Printf corner cases in <code class="code">std::format</code> </td><td align="left">
+ </td></tr><tr><td align="left"> Printf corner cases in <code class="code">std::format</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html" target="_top">
P1652R1 </a>
- </td><td align="center"> </td><td align="left">
+ </td><td align="center"> 13.1 </td><td align="left">
<code class="code">__cpp_lib_format >= 201907L</code>
</td></tr><tr><td align="left"> String Prefix and Suffix Checking </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html" target="_top">
P0457R2 </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_starts_ends_with >= 201711L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Update The Reference To The Unicode Standard </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_starts_ends_with >= 201711L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Update The Reference To The Unicode Standard </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html" target="_top">
P1025R1 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> —</td><td align="left"> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Containers</strong></span>
</td></tr><tr><td align="left"> span: bounds-safe views for sequences of objects </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf" target="_top">
@@ -1492,10 +1492,10 @@ or any notes about the implementation.
</td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_to_array >= 201907L</code> </td></tr><tr><td align="left"> Checking for Existence of an Element in Associative Containers </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html" target="_top">
P0458R2 </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Comparing Unordered Containers </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Comparing Unordered Containers </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf" target="_top">
P0809R0 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Heterogeneous lookup for unordered containers </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Heterogeneous lookup for unordered containers </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html" target="_top">
P0919R3 </a>
</td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_generic_unordered_lookup >= 201811</code> </td></tr><tr><td align="left"> Refinement Proposal for P0919 </td><td align="left">
@@ -1570,7 +1570,7 @@ or any notes about the implementation.
</td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Thou Shalt Not Specialize std Function Templates! </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf" target="_top">
P0551R3 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Bit-casting object representations </td><td align="left">
+ </td><td align="center"> </td><td align="left">These changes will not be implemented.</td></tr><tr><td align="left"> Bit-casting object representations </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html" target="_top">
P0476R2 </a>
</td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_bit_cast >= 201806L</code> </td></tr><tr><td align="left"> Integral power-of-2 operations </td><td align="left">
@@ -1591,10 +1591,10 @@ or any notes about the implementation.
</td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Add <code class="code">shift</code> to <code class="code"><algorithm></code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf" target="_top">
P0769R2 </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_shift >= 201806L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Standard Library Specification in a Concepts and Contracts World </td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_shift >= 201806L</code> </td></tr><tr><td align="left"> Standard Library Specification in a Concepts and Contracts World </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf" target="_top">
P0788R3 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">explicit(bool)</code> </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">explicit(bool)</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html" target="_top">
P0892R2 </a>
</td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Eradicating unnecessarily explicit default constructors from the standard library </td><td align="left">
@@ -1630,10 +1630,10 @@ or any notes about the implementation.
</td><td align="center"> 7.1 </td><td align="left"> </td></tr><tr><td align="left"> Editorial Guidance for merging P0019r8 and P0528r3 </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html" target="_top">
P1123R0 </a>
- </td><td align="center"> — </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Cleaning up Clause 20 </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Cleaning up Clause 20 </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf" target="_top">
P1148R0 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html" target="_top">
P1210R0 </a>
</td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Alternative Wording for P0907R4 Signed Integers are Two's Complement </td><td align="left">
@@ -1669,13 +1669,13 @@ or any notes about the implementation.
</td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf" target="_top">
P1463R1 </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left">
Mandating the Standard Library:
Clause 22 - Iterators library
</td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf" target="_top">
P1464R1 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Make <code class="code">create_directory()</code> Intuitive </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Make <code class="code">create_directory()</code> Intuitive </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf" target="_top">
P1164R1
</a>
@@ -1711,6 +1711,10 @@ or any notes about the implementation.
Note 1: This feature is supported in older releases but the
<code class="code">__cpp_lib</code> macro is not defined to the right value
(or not defined at all) until the version shown in parentheses.
+</p><p>
+Note 2: The C++20 calendar types are supported since 11.1,
+time zones and UTC are supported since 13.1,
+and <code class="function">chrono::parse</code> is supported since 14.1.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2023"></a>C++ 2023</h3></div></div></div><p>
In this implementation the <code class="literal">-std=gnu++23</code> or
<code class="literal">-std=c++23</code> flag must be used to enable language
@@ -1780,11 +1784,88 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1659r3.html" target="_top">
P1659R3
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_starts_ends_with >= 202106L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">zip</code> </td><td align="left">
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_starts_ends_with >= 202106L</code> </td></tr><tr><td align="left"> <code class="code">zip</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2321r2.html" target="_top">
P2321R2
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_zip >= 202110L</code> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_zip >= 202110L</code> </td></tr><tr><td align="left"> <code class="code">views::repeat</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2474r2.html" target="_top">
+ P2474R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_repeat >= 202207L</code> </td></tr><tr><td align="left"> <code class="code">views::enumerate</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2164r9.pdf" target="_top">
+ P2164R9
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_enumerate >= 202302L</code> </td></tr><tr><td align="left"> <code class="code">views::join_with</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2441r2.html" target="_top">
+ P2441R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_join_with >= 202202L</code> </td></tr><tr><td align="left">
+ Windowing range adaptors: <code class="code">views::chunk</code>
+ and <code class="code">views::slide</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2442r2.html" target="_top">
+ P2442R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_slide >= 202202L</code> </td></tr><tr><td align="left"> <code class="code">views::chunk_by</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2443r1.html" target="_top">
+ P2443R1
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_chunk_by >= 202202L</code> </td></tr><tr><td align="left"> <code class="code">views::stride</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1899r3.html" target="_top">
+ P1899R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_stride >= 202207L</code> </td></tr><tr><td align="left"> <code class="code">views::cartesian_product</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2374r4.html" target="_top">
+ P2374R4
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_cartesian_product >= 202207L</code> </td></tr><tr><td align="left"> Empty Product for certain Views </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2540r1.html" target="_top">
+ P2540R1
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_cartesian_product >= 202207L</code> </td></tr><tr><td align="left"> <code class="code">views::as_rvalue</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2446r2.html" target="_top">
+ P2446R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_as_rvalue >= 202207L</code> </td></tr><tr><td align="left">
+ <code class="code">cbegin</code> should always return a constant iterator
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2278r4.html" target="_top">
+ P2278R4
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_as_const >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">ranges::to</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf" target="_top">
+ P1206R7
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_to_container >= 202202L</code> </td></tr><tr><td align="left"> Pipe support for user-defined range adaptors </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html" target="_top">
+ P2387R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left">
+ <code class="code">__cpp_lib_bind_pack >= 202202L</code>,
+ <code class="code">__cpp_lib_ranges >= 202202L</code>
+ </td></tr><tr bgcolor="#B0B0B0"><td align="left">
+ <code class="code">ranges::iota</code>, <code class="code">ranges::shift_left</code>,
+ and <code class="code">ranges::shift_right</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2440r1.html" target="_top">
+ P2440R1
+ </a>
+ </td><td align="center"> 13.1 (<code class="code">ranges::iota</code>) </td><td align="left">
+ <code class="code">__cpp_lib_ranges_iota >= 202202L</code>,
+ <code class="code">__cpp_lib_shift >= 202202L</code>
+ </td></tr><tr><td align="left"> <code class="code">ranges::find_last</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1223r5.pdf" target="_top">
+ P1223R5
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_find_last >= 202207L</code> </td></tr><tr><td align="left"> <code class="code">ranges::contains</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2302r4.html" target="_top">
+ P2302R4
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_contains >= 202207L</code> </td></tr><tr><td align="left"> <code class="code">ranges::fold</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2322r6.html" target="_top">
+ P2322R6
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_fold >= 202207L</code> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Compile-time programming</strong></span>
</td></tr><tr><td align="left"> A proposal for a type trait to detect scoped enumerations </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1048r1.pdf" target="_top">
@@ -1818,11 +1899,11 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1413r3.pdf" target="_top">
P1413R3
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> A type trait to detect reference binding to temporary </td><td align="left">
+ </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left"> A type trait to detect reference binding to temporary </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2255r2.html" target="_top">
P2255R2
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_reference_from_temporary >= 202202L</code> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> 13.1 (missing changes to <code class="code">std::tuple</code> </td><td align="left"> <code class="code">__cpp_lib_reference_from_temporary >= 202202L</code> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Strings and text</strong></span>
</td></tr><tr><td align="left"> string contains function </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1679r3.html" target="_top">
@@ -1854,7 +1935,101 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2077r3.html" target="_top">
P2077R3
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_associative_heterogeneous_erasure >= 202110L</code> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_associative_heterogeneous_erasure >= 202110L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code"><flat_map></code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0429r9.pdf" target="_top">
+ P0429R9
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_flat_map >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code"><flat_set></code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1222r4.pdf" target="_top">
+ P1222R4
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_flat_set >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">mdspan</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html" target="_top">
+ P0009R18
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ <code class="code">index_type</code> & <code class="code">size_type</code>
+ in <code class="code">mdspan</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2599r2.pdf" target="_top">
+ P2599R2
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ <code class="code">mdspan</code>: rename <code class="code">pointer</code> and
+ <code class="code">contiguous</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2604r0.html" target="_top">
+ P2604R0
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Add the missing <code class="code">empty</code> to <code class="code">mdspan</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2613r1.html" target="_top">
+ P2613R1
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ <code class="code">layout_stride</code> static extents default constructor fix
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2763r1.html" target="_top">
+ P2763R1
+ </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Strings and text</strong></span>
+ </td></tr><tr><td align="left"> std::format improvements </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html" target="_top">
+ P2216R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_format >= 202106L</code> </td></tr><tr><td align="left">
+ Add support for <code class="code">std::generator</code>-like types to
+ <code class="code">std::format</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html" target="_top">
+ P2418R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_format >= 202110L</code> </td></tr><tr><td align="left">
+ Expose <code class="code">std::<span class="emphasis"><em>basic-format-string</em></span><charT, Args...></code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2508r1.html" target="_top">
+ P2508R1
+ </a>
+ </td><td align="center"> 13.1 (feature test macro not defined)</td><td align="left"> <code class="code">__cpp_lib_format >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ Clarify handling of encodings in localized formatting of chrono types
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2419r2.html" target="_top">
+ P2419R2
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Formatting Ranges </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2286r8.html" target="_top">
+ P2286R8
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format_ranges >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Improve default container formatting </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2585r1.html" target="_top">
+ P2585R1
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format_ranges >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Formatted output </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2093r14.html" target="_top">
+ P2093R14
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_print >= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ Should the output of std::print to a terminal be synchronized with
+ the underlying stream?
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2539r3.html" target="_top">
+ P2539R3
+ </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left">
+ Formatting <code class="code">thread::id</code> and <code class="code">stacktrace</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2693r1.pdf" target="_top">
+ P2693R1
+ </a>
+ </td><td align="center"> 14.1 </td><td align="left"> <code class="code">__cpp_lib_formatters >= 202302L</code> </td></tr><tr><td align="left">
+ Add Constexpr Modifiers to Functions <code class="code">to_chars</code> and
+ <code class="code">from_chars</code> for Integral Types in
+ <code class="code"><charconv></code> Header
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2291r3.pdf" target="_top">
+ P2291R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_charconv >= 202207L</code> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Miscellaneous</strong></span>
</td></tr><tr><td align="left"> Inheriting from <code class="code">std::variant</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2162r2.html" target="_top">
@@ -1876,11 +2051,21 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html" target="_top">
P0323R12
</a>
- </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_expected >= 202202L</code> </td></tr><tr><td align="left"> Monadic operations for std::optional </td><td align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_expected >= 202202L</code> </td></tr><tr><td align="left"> Monadic operations for std::expected </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html" target="_top">
+ P2505R5
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_expected >= 202211L</code> </td></tr><tr><td align="left"> Monadic operations for std::optional </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0798r8.html" target="_top">
P0798R8
</a>
- </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_optional >= 202110L</code> </td></tr><tr><td align="left"> <code class="code">move_only_function</code> </td><td align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_optional >= 202110L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ Compatibility between <code class="code">tuple</code>, <code class="code">pair</code>
+ and <span class="emphasis"><em>tuple-like</em></span> objects </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2165r4.pdf" target="_top">
+ P2165R4
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_tuple_like >= 202207L</code> </td></tr><tr><td align="left"> <code class="code">move_only_function</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0288r9.html" target="_top">
P0288R9
</a>
@@ -1900,7 +2085,15 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2401r0.html" target="_top">
P2401R0
</a>
- </td><td align="center"> 12.1 </td><td align="left"> </td></tr><tr><td align="left"> Support C atomics in C++ </td><td align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> </td></tr><tr><td align="left"> A more constexpr bitset </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2417r2.pdf" target="_top">
+ P2417R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_bitset >= 202207L</code> </td></tr><tr><td align="left"> Extended floating-point types and standard names </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1467r9.html" target="_top">
+ P1467R9
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> </td></tr><tr><td align="left"> Support C atomics in C++ </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0943r6.html" target="_top">
P0943R6
</a>
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 <code>
- --include bits/stdc++.h </code> to CXXFLAGS) when running the
+ In addition, this generated file is used later on (by appending
+ <code>-include bits/stdc++.h</code> to CXXFLAGS) when running the
testsuite.
</para>
</listitem></varlistentry>
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.
</row>
<row>
- <?dbhtml bgcolor="#B0B0B0" ?>
<entry> Improving Completeness Requirements for Type Traits </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
P1285R0 </link>
</entry>
- <entry align="center"> Partial </entry>
- <entry />
+ <entry align="center"> — </entry>
+ <entry> Most misuses are diagnosed, but not all. </entry>
</row>
<row>
@@ -541,13 +540,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Avoid template bloat for <code>safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1739r4.html">
P1739R4 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 12.1 </entry>
<entry />
</row>
@@ -559,18 +557,16 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Extending chrono to Calendars and Time Zones </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
P0355R7 </link>
</entry>
- <entry/>
+ <entry> 14.1 (see Note 2) </entry>
<entry> <code>__cpp_lib_chrono >= 201803L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Miscellaneous minor fixes for chrono </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html">
@@ -667,39 +663,36 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Text formatting </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html">
P0645R10 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry>
<code>__cpp_lib_format >= 201907L</code>
</entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Integration of chrono with text formatting </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf">
P1361R2 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry>
<code>__cpp_lib_format >= 201907L</code>
</entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Printf corner cases in <code>std::format</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html">
P1652R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry>
<code>__cpp_lib_format >= 201907L</code>
</entry>
@@ -716,13 +709,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Update The Reference To The Unicode Standard </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
P1025R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> —</entry>
<entry />
</row>
@@ -796,13 +788,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Comparing Unordered Containers </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
P0809R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> — </entry>
<entry />
</row>
@@ -1039,7 +1030,7 @@ or any notes about the implementation.
P0551R3 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry>These changes will not be implemented.</entry>
</row>
<row>
@@ -1113,13 +1104,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Standard Library Specification in a Concepts and Contracts World </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
P0788R3 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> — </entry>
<entry />
</row>
@@ -1244,13 +1234,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Cleaning up Clause 20 </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
P1148R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> — </entry>
<entry />
</row>
@@ -1341,7 +1330,6 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry>
Mandating the Standard Library:
Clause 22 - Iterators library
@@ -1350,7 +1338,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf">
P1464R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> — </entry>
<entry />
</row>
@@ -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.
</para>
+<para>
+Note 2: The C++20 calendar types are supported since 11.1,
+time zones and UTC are supported since 13.1,
+and <function>chrono::parse</function> is supported since 14.1.
+</para>
+
</section>
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.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> <code>zip</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2321r2.html">
P2321R2
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry> <code>__cpp_lib_ranges_zip >= 202110L</code> </entry>
</row>
+ <row>
+ <entry> <code>views::repeat</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2474r2.html">
+ P2474R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_repeat >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::enumerate</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2164r9.pdf">
+ P2164R9
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_enumerate >= 202302L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::join_with</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2441r2.html">
+ P2441R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_join_with >= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Windowing range adaptors: <code>views::chunk</code>
+ and <code>views::slide</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2442r2.html">
+ P2442R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_slide >= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::chunk_by</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2443r1.html">
+ P2443R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_chunk_by >= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::stride</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1899r3.html">
+ P1899R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_stride >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::cartesian_product</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2374r4.html">
+ P2374R4
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_cartesian_product >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Empty Product for certain Views </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2540r1.html">
+ P2540R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_cartesian_product >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::as_rvalue</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2446r2.html">
+ P2446R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_as_rvalue >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ <code>cbegin</code> should always return a constant iterator
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2278r4.html">
+ P2278R4
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_as_const >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>ranges::to</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf">
+ P1206R7
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_ranges_to_container >= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Pipe support for user-defined range adaptors </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html">
+ P2387R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry>
+ <code>__cpp_lib_bind_pack >= 202202L</code>,
+ <code>__cpp_lib_ranges >= 202202L</code>
+ </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#B0B0B0" ?>
+ <entry>
+ <code>ranges::iota</code>, <code>ranges::shift_left</code>,
+ and <code>ranges::shift_right</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2440r1.html">
+ P2440R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 (<code>ranges::iota</code>) </entry>
+ <entry>
+ <code>__cpp_lib_ranges_iota >= 202202L</code>,
+ <code>__cpp_lib_shift >= 202202L</code>
+ </entry>
+ </row>
+
+ <row>
+ <entry> <code>ranges::find_last</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1223r5.pdf">
+ P1223R5
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_find_last >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>ranges::contains</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2302r4.html">
+ P2302R4
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_contains >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>ranges::fold</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2322r6.html">
+ P2322R6
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_fold >= 202207L</code> </entry>
+ </row>
+
<row>
<entry namest="c1" nameend="c4" align="left">
<emphasis role="bold">Compile-time programming</emphasis>
@@ -294,14 +484,14 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <?dbhtml bgcolor="#B0B0B0" ?>
<entry> A type trait to detect reference binding to temporary </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2255r2.html">
P2255R2
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 (missing changes to <code>std::tuple</code> </entry>
<entry> <code>__cpp_lib_reference_from_temporary >= 202202L</code> </entry>
</row>
@@ -395,6 +585,235 @@ or any notes about the implementation.
<entry> <code>__cpp_lib_associative_heterogeneous_erasure >= 202110L</code> </entry>
</row>
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code><flat_map></code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0429r9.pdf">
+ P0429R9
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_flat_map >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code><flat_set></code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1222r4.pdf">
+ P1222R4
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_flat_set >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>mdspan</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html">
+ P0009R18
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ <code>index_type</code> & <code>size_type</code>
+ in <code>mdspan</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2599r2.pdf">
+ P2599R2
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ <code>mdspan</code>: rename <code>pointer</code> and
+ <code>contiguous</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2604r0.html">
+ P2604R0
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Add the missing <code>empty</code> to <code>mdspan</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2613r1.html">
+ P2613R1
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ <code>layout_stride</code> static extents default constructor fix
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2763r1.html">
+ P2763R1
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry/>
+ </row>
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Strings and text</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> std::format improvements </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html">
+ P2216R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_format >= 202106L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Add support for <code>std::generator</code>-like types to
+ <code>std::format</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html">
+ P2418R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_format >= 202110L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Expose <code>std::<emphasis>basic-format-string</emphasis><charT, Args...></code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2508r1.html">
+ P2508R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 (feature test macro not defined)</entry>
+ <entry> <code>__cpp_lib_format >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ Clarify handling of encodings in localized formatting of chrono types
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2419r2.html">
+ P2419R2
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_format >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Formatting Ranges </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2286r8.html">
+ P2286R8
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_format_ranges >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Improve default container formatting </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2585r1.html">
+ P2585R1
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_format_ranges >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Formatted output </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2093r14.html">
+ P2093R14
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_print >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ Should the output of std::print to a terminal be synchronized with
+ the underlying stream?
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2539r3.html">
+ P2539R3
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry/>
+ </row>
+
+ <row>
+ <entry>
+ Formatting <code>thread::id</code> and <code>stacktrace</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2693r1.pdf">
+ P2693R1
+ </link>
+ </entry>
+ <entry align="center"> 14.1 </entry>
+ <entry> <code>__cpp_lib_formatters >= 202302L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Add Constexpr Modifiers to Functions <code>to_chars</code> and
+ <code>from_chars</code> for Integral Types in
+ <code><charconv></code> Header
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2291r3.pdf">
+ P2291R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_charconv >= 202207L</code> </entry>
+ </row>
+
<row>
<entry namest="c1" nameend="c4" align="left">
<emphasis role="bold">Miscellaneous</emphasis>
@@ -456,6 +875,17 @@ or any notes about the implementation.
<entry> <code>__cpp_lib_expected >= 202202L</code> </entry>
</row>
+ <row>
+ <entry> Monadic operations for std::expected </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html">
+ P2505R5
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_expected >= 202211L</code> </entry>
+ </row>
+
<row>
<entry> Monadic operations for std::optional </entry>
<entry>
@@ -467,6 +897,20 @@ or any notes about the implementation.
<entry> <code>__cpp_lib_optional >= 202110L</code> </entry>
</row>
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ Compatibility between <code>tuple</code>, <code>pair</code>
+ and <emphasis>tuple-like</emphasis> objects </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2165r4.pdf">
+ P2165R4
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_tuple_like >= 202207L</code> </entry>
+ </row>
+
<row>
<entry> <code>move_only_function</code> </entry>
<entry>
@@ -522,6 +966,28 @@ or any notes about the implementation.
<entry />
</row>
+ <row>
+ <entry> A more constexpr bitset </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2417r2.pdf">
+ P2417R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_bitset >= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Extended floating-point types and standard names </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1467r9.html">
+ P1467R9
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry/>
+ </row>
+
<row>
<entry> Support C atomics in C++ </entry>
<entry>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-09-18 13:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-18 13:11 [gcc r14-4100] libstdc++: Update C++20 and C++23 status docs Jonathan Wakely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).