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.
This commit is contained in:
Jonathan Wakely 2023-05-06 22:02:51 +01:00
parent 4260f4af4d
commit c8e9a75085
5 changed files with 717 additions and 64 deletions

View File

@ -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.

View File

@ -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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 201907L</code> </td></tr><tr><td align="left"> <code class="code">&lt;chrono&gt;</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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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">&lt;algorithm&gt;</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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 202202L</code>,
<code class="code">__cpp_lib_ranges &gt;= 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 &gt;= 202202L</code>,
<code class="code">__cpp_lib_shift &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 202110L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">&lt;flat_map&gt;</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 &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">&lt;flat_set&gt;</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 &gt;= 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 &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
<code class="code">index_type</code> &amp; <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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 202110L</code> </td></tr><tr><td align="left">
Expose <code class="code">std::<span class="emphasis"><em>basic-format-string</em></span>&lt;charT, Args...&gt;</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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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">&lt;charconv&gt;</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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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>

View File

@ -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>

View File

@ -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"> &#x2014; </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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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"> &#x2014;</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"> &#x2014; </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"> &#x2014; </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"> &#x2014; </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"> &#x2014; </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>

View File

@ -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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 202202L</code>,
<code>__cpp_lib_ranges &gt;= 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 &gt;= 202202L</code>,
<code>__cpp_lib_shift &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 202202L</code> </entry>
</row>
@ -395,6 +585,235 @@ or any notes about the implementation.
<entry> <code>__cpp_lib_associative_heterogeneous_erasure &gt;= 202110L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
<entry> <code>&lt;flat_map&gt;</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 &gt;= 202207L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
<entry> <code>&lt;flat_set&gt;</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 &gt;= 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 &gt;= 202207L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
<entry>
<code>index_type</code> &amp; <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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 202110L</code> </entry>
</row>
<row>
<entry>
Expose <code>std::<emphasis>basic-format-string</emphasis>&lt;charT, Args...&gt;</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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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>&lt;charconv&gt;</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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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>