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 diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index 548b632b6e4..290e5d3a74e 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.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> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index 7611d174233..d979db06b11 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -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> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2023.xml b/libstdc++-v3/doc/xml/manual/status_cxx2023.xml new file mode 100644 index 00000000000..f1244da9dc8 --- /dev/null +++ b/libstdc++-v3/doc/xml/manual/status_cxx2023.xml @@ -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> -- 2.34.3