[committed,2/4] libstdc++: Add C++23 status docs
Commit Message
Pushed to trunk. Backports to gcc-11 and gcc-12 to follow.
-- >8 --
These are the C++23 proposals already supported in the gcc-11 branch.
libstdc++-v3/ChangeLog:
* doc/xml/manual/intro.xml: Include new chapter.
* doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
* doc/xml/manual/status_cxx2023.xml: New file.
* doc/html/*: Regenerate.
---
libstdc++-v3/doc/html/index.html | 2 +-
libstdc++-v3/doc/html/manual/index.html | 4 +-
libstdc++-v3/doc/html/manual/intro.html | 2 +-
libstdc++-v3/doc/html/manual/status.html | 109 +++++++-
libstdc++-v3/doc/xml/manual/intro.xml | 10 +-
.../doc/xml/manual/status_cxx2020.xml | 16 +-
.../doc/xml/manual/status_cxx2023.xml | 232 ++++++++++++++++++
7 files changed, 347 insertions(+), 28 deletions(-)
create mode 100644 libstdc++-v3/doc/xml/manual/status_cxx2023.xml
@@ -47,15 +47,19 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxx2020.xml">
</xi:include>
- <!-- Section 01.5 : Status C++ TR1 -->
+ <!-- Section 01.5 : Status C++ 2023 -->
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxx2023.xml">
+ </xi:include>
+
+ <!-- Section 01.6 : Status C++ TR1 -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr1.xml">
</xi:include>
- <!-- Section 01.6 : Status C++ TR24733 -->
+ <!-- Section 01.7 : Status C++ TR24733 -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr24733.xml">
</xi:include>
- <!-- Section 01.7 : Status C++ IS 29124 -->
+ <!-- Section 01.8 : Status C++ IS 29124 -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxis29124.xml">
</xi:include>
</section>
@@ -25,8 +25,8 @@ not in any particular release.
</para>
<para>
-The following table lists new library features that have been accepted into
-the C++20 working draft. The "Proposal" column provides a link to the
+The following table lists new library features that are included in
+the C++20 standard. The "Proposal" column provides a link to the
ISO C++ committee proposal that describes the feature, while the "Status"
column indicates the first version of GCC that contains an implementation of
this feature (if it has been implemented).
@@ -359,7 +359,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
P0053R7 </link>
</entry>
- <entry align="center"> 11 </entry>
+ <entry align="center"> 11.1 </entry>
<entry> <code>__cpp_lib_syncbuf >= 201711L</code> </entry>
</row>
@@ -369,7 +369,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
P0753R2 </link>
</entry>
- <entry align="center"> 11 </entry>
+ <entry align="center"> 11.1 </entry>
<entry> <code>__cpp_lib_syncbuf >= 201803L</code> </entry>
</row>
@@ -643,7 +643,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
P0966R1 </link>
</entry>
- <entry align="center"> 11 </entry>
+ <entry align="center"> 11.1 </entry>
<entry />
</row>
@@ -1039,7 +1039,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
P0476R2 </link>
</entry>
- <entry align="center"> 11 </entry>
+ <entry align="center"> 11.1 </entry>
<entry> <code>__cpp_lib_bit_cast >= 201806L</code> </entry>
</row>
@@ -1424,7 +1424,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf">
P1208R6 </link>
</entry>
- <entry align="center"> 11 </entry>
+ <entry align="center"> 11.1 </entry>
<entry>
<code>__cpp_lib_source_location >= 201907L</code>
</entry>
@@ -1436,7 +1436,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf">
P0408R7 </link>
</entry>
- <entry align="center"> 11 </entry>
+ <entry align="center"> 11.1 </entry>
<entry />
</row>
new file mode 100644
@@ -0,0 +1,232 @@
+<section xmlns="http://docbook.org/ns/docbook" version="5.0"
+ xml:id="status.iso.2023" xreflabel="Status C++ 2023">
+<?dbhtml filename="status_iso_cxx2023.html"?>
+
+<info><title>C++ 2023</title>
+ <keywordset>
+ <keyword>ISO C++</keyword>
+ <keyword>2023</keyword>
+ </keywordset>
+</info>
+
+<para>
+In this implementation the <literal>-std=gnu++23</literal> or
+<literal>-std=c++23</literal> flag must be used to enable language
+and library
+features. See <link linkend="manual.intro.using.flags">dialect</link>
+options. The pre-defined symbol
+<constant>__cplusplus</constant> is used to check for the
+presence of the required flag.
+</para>
+
+<para>
+This section describes the C++23 and library TS support in mainline GCC,
+not in any particular release.
+</para>
+
+<para>
+The following table lists new library features that have been accepted into
+the C++23 working draft. The "Proposal" column provides a link to the
+ISO C++ committee proposal that describes the feature, while the "Status"
+column indicates the first version of GCC that contains an implementation of
+this feature (if it has been implemented).
+A dash (—) in the status column indicates that the changes in the proposal
+either do not affect the code in libstdc++, or the changes are not required for conformance.
+The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6:
+Feature-testing recommendations for C++</link> (where applicable)
+or any notes about the implementation.
+</para>
+
+<table frame="all" xml:id="table.cxx23_features">
+<title>C++ 2023 Library Features</title>
+
+<tgroup cols="4" align="left" colsep="0" rowsep="1">
+<colspec colname="c1"/>
+<colspec colname="c2"/>
+<colspec colname="c3"/>
+<colspec colname="c4"/>
+ <thead>
+ <row>
+ <entry>Library Feature</entry>
+ <entry>Proposal</entry>
+ <entry>Status</entry>
+ <entry>SD-6 Feature Test / Notes</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Ranges and Views</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Range constructor for std::string_view </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1989r2.pdf">
+ P1989R2
+ </link>
+ </entry>
+ <entry align="center"> 11.1 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> <code>join_view</code> should join all views of ranges </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2328r1.html">
+ P2328R1
+ </link>
+ </entry>
+ <entry align="center"> 11.2 </entry>
+ <entry />
+ </row>
+
+
+ <row>
+ <entry> Clarifying range adaptor objects </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2281r1.html">
+ P2281R1
+ </link>
+ </entry>
+ <entry align="center"> 11.1 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> Views should not be required to be default constructible </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html">
+ P2325R3
+ </link>
+ </entry>
+ <entry align="center"> 11.3 </entry>
+ <entry> <code>__cpp_lib_ranges >= 202106L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Conditionally borrowed ranges </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2017r1.html">
+ P2017R1
+ </link>
+ </entry>
+ <entry align="center"> 11.1 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> Require <code>span</code> & <code>basic_string_view</code> to be Trivially Copyable </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2251r1.pdf">
+ P2251R1
+ </link>
+ </entry>
+ <entry align="center"> Yes </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Compile-time programming</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> A proposal for a type trait to detect scoped enumerations </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1048r1.pdf">
+ P1048R1
+ </link>
+ </entry>
+ <entry align="center"> 11.1 </entry>
+ <entry> <code>__cpp_lib_is_scoped_enum >= 202011L</code> </entry>
+ </row>
+
+ <row>
+ <entry> std::to_underlying for enumerations </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1682r3.html">
+ P1682R3
+ </link>
+ </entry>
+ <entry align="center"> 11.1 </entry>
+ <entry> <code>__cpp_lib_to_underlying >= 202102L</code> </entry>
+ </row>
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Strings and text</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> string contains function </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1679r3.html">
+ P1679R3
+ </link>
+ </entry>
+ <entry align="center"> 11.1 </entry>
+ <entry> <code>__cpp_lib_string_contains >= 202011L</code> </entry>
+ </row>
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Miscellaneous</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Inheriting from <code>std::variant</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2162r2.html">
+ P2162R2
+ </link>
+ </entry>
+ <entry align="center"> 11.3 </entry>
+ <entry> <code>__cpp_lib_variant >= 202102L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Printing <code>volatile</code> Pointers </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1147r1.html">
+ P1147R1
+ </link>
+ </entry>
+ <entry align="center"> 11.3 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> Clarifying the status of the "C headers" </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2340r1.html">
+ P2340R1
+ </link>
+ </entry>
+ <entry align="center"> Yes </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> Relax Requirements for time_point::clock </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2212r2.html">
+ P2212R2
+ </link>
+ </entry>
+ <entry align="center"> Yes </entry>
+ <entry />
+ </row>
+
+ </tbody>
+</tgroup>
+</table>
+
+</section>