Another piece of the manual that needs to be kept up to date as we add features.
Pushed to trunk. -- >8 -- libstdc++-v3/ChangeLog: * doc/xml/manual/using.xml: Update tables of supported headers. * doc/html/*: Regenerate. --- libstdc++-v3/doc/html/manual/index.html | 2 +- .../doc/html/manual/using_headers.html | 58 ++++-- libstdc++-v3/doc/xml/manual/using.xml | 165 ++++++++++++++++-- 3 files changed, 192 insertions(+), 33 deletions(-) diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml index 7276cad0feb..b3b0c368e44 100644 --- a/libstdc++-v3/doc/xml/manual/using.xml +++ b/libstdc++-v3/doc/xml/manual/using.xml @@ -468,9 +468,9 @@ Unless specified otherwise below, they are also available in later modes <para> <xref linkend="table.cxx20_headers"/> -shows the C++2a include files. -These are available in C++2a compilation -mode, i.e. <literal>-std=c++2a</literal> or <literal>-std=gnu++2a</literal>. +shows the C++20 include files. +These are available in C++20 compilation +mode, i.e. <literal>-std=c++20</literal> or <literal>-std=gnu++20</literal>. Including these headers in earlier modes will not result in compilation errors, but will not define anything. <!-- @@ -483,28 +483,46 @@ Unless specified otherwise below, they are also available in later modes <table frame="all" xml:id="table.cxx20_headers"> <title>C++ 2020 Library Headers</title> -<tgroup cols="2" align="left" colsep="1" rowsep="1"> +<tgroup cols="5" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> -<!-- <colspec colname="c3"/> <colspec colname="c4"/> <colspec colname="c5"/> ---> <tbody> <row> +<entry><filename class="headerfile">barrier</filename></entry> <entry><filename class="headerfile">bit</filename></entry> -<entry><filename class="headerfile">version</filename></entry> +<entry><filename class="headerfile">charconv</filename></entry> +<entry><filename class="headerfile">compare</filename></entry> +<entry><filename class="headerfile">concepts</filename></entry> +</row> +<row> +<entry><filename class="headerfile">coroutine</filename></entry> +<entry><filename class="headerfile">format</filename></entry> +<entry><filename class="headerfile">latch</filename></entry> +<entry><filename class="headerfile">numbers</filename></entry> +<entry><filename class="headerfile">ranges</filename></entry> +</row> +<row> +<entry><filename class="headerfile">semaphore</filename></entry> +<entry><filename class="headerfile">source_location</filename></entry> +<entry><filename class="headerfile">span</filename></entry> +<entry><filename class="headerfile">stop_token</filename></entry> +<entry><filename class="headerfile">syncstream</filename></entry> +</row> +<row> +<entry><filename class="headerfile">version</filename></entry> +<entry namest="c2" nameend="c5"/> </row> -<!-- TODO compare, concepts, contract, span, syncstream --> </tbody> </tgroup> </table> <para> - The following headers have been removed in the C++2a working draft. + The following headers have been removed in the C++20 standard. They are still available when using this implementation, but in future - they might start to produce warnings or errors when included in C++2a mode. + they might start to produce warnings or errors when included in C++20 mode. Programs that intend to be portable should not include them. </para> @@ -529,10 +547,86 @@ Unless specified otherwise below, they are also available in later modes </tgroup> </table> +<para> +<xref linkend="table.cxx23_headers"/> +shows the C++23 include files. +These are available in C++23 compilation +mode, i.e. <literal>-std=c++23</literal> or <literal>-std=gnu++23</literal>. +Including these headers in earlier modes will not result in +compilation errors, but will not define anything. +<!-- +Unless specified otherwise below, they are also available in later modes +(C++26 etc). +--> +</para> + +<para/> +<table frame="all" xml:id="table.cxx23_headers"> +<title>C++ 2023 Library Headers</title> + +<tgroup cols="5" align="left" colsep="1" rowsep="1"> +<colspec colname="c1"/> +<colspec colname="c2"/> +<colspec colname="c3"/> +<colspec colname="c4"/> +<colspec colname="c5"/> +<tbody> +<row> +<entry><filename class="headerfile">expected</filename></entry> +<entry><filename class="headerfile">generator</filename></entry> +<entry><filename class="headerfile">print</filename></entry> +<entry><filename class="headerfile">spanstream</filename></entry> +<entry><filename class="headerfile">stacktrace</filename></entry> +</row> +<row> +<entry><filename class="headerfile">stdatomic.h</filename></entry> +<entry><filename class="headerfile">stdfloat</filename></entry> +<entry namest="c3" nameend="c5"/> +<!-- TODO flat_map, flat_set, mdspan --> +</row> +</tbody> +</tgroup> +</table> + +<para> +<xref linkend="table.cxx26_headers"/> +shows the C++26 include files. +These are available in C++26 compilation +mode, i.e. <literal>-std=c++26</literal> or <literal>-std=gnu++26</literal>. +Including these headers in earlier modes will not result in +compilation errors, but will not define anything. +<!-- +Unless specified otherwise below, they are also available in later modes +(C++2d etc). +--> +</para> + +<para/> +<table frame="all" xml:id="table.cxx26_headers"> +<title>C++ 2026 Library Headers</title> + +<tgroup cols="1" align="left" colsep="1" rowsep="1"> +<colspec colname="c1"/> +<!-- +<colspec colname="c2"/> +<colspec colname="c3"/> +<colspec colname="c4"/> +<colspec colname="c5"/> +--> +<tbody> +<row> +<entry><filename class="headerfile">text_encoding</filename></entry> +<!-- TODO debugging, hazard_pointer, linalg, rcu --> +</row> +</tbody> +</tgroup> +</table> + + <para> <xref linkend="table.filesystemts_headers"/>, shows the additional include file define by the -File System Technical Specification, ISO/IEC TS 18822. +File System Technical Specification, ISO/IEC TS 18822:2015. This is available in C++11 and later compilation modes. Including this header in earlier modes will not result in compilation errors, but will not define anything. @@ -556,8 +650,11 @@ compilation errors, but will not define anything. <para> <xref linkend="table.libfundts_headers"/>, shows the additional include files define by the C++ Extensions for -Library Fundamentals Technical Specification, ISO/IEC TS 19568. -These are available in C++14 and later compilation modes. +Library Fundamentals Technical Specification, ISO/IEC TS 19568:2015, +ISO/IEC TS 19568:2017, and ISO/IEC TS 19568:2024. +These are available in C++14 and later compilation modes, except for +<filename class="headerfile"><experimental/scope></filename> +which is available in C++20 and later compilation modes. Including these headers in earlier modes will not result in compilation errors, but will not define anything. </para> @@ -598,22 +695,58 @@ compilation errors, but will not define anything. <entry><filename class="headerfile">experimental/random</filename></entry> <entry><filename class="headerfile">experimental/ratio</filename></entry> <entry><filename class="headerfile">experimental/regex</filename></entry> +<entry><filename class="headerfile">experimental/scope</filename></entry> <entry><filename class="headerfile">experimental/set</filename></entry> -<entry><filename class="headerfile">experimental/source_location</filename></entry> </row> <row> +<entry><filename class="headerfile">experimental/source_location</filename></entry> <entry><filename class="headerfile">experimental/string</filename></entry> <entry><filename class="headerfile">experimental/string_view</filename></entry> <entry><filename class="headerfile">experimental/system_error</filename></entry> <entry><filename class="headerfile">experimental/tuple</filename></entry> -<entry><filename class="headerfile">experimental/type_traits</filename></entry> </row> <row> +<entry><filename class="headerfile">experimental/type_traits</filename></entry> <entry><filename class="headerfile">experimental/unordered_map</filename></entry> <entry><filename class="headerfile">experimental/unordered_set</filename></entry> <entry><filename class="headerfile">experimental/utility</filename></entry> <entry><filename class="headerfile">experimental/vector</filename></entry> -<entry /> +</row> +</tbody> +</tgroup> +</table> + + +<para> +<xref linkend="table.networkingts_headers"/>, +shows the additional include files define by the +Networking Technical Specification, ISO/IEC TS 19216:2018. +These are available in C++14 and later compilation modes. +Including these headers in earlier modes will not result in +compilation errors, but will not define anything. +</para> + +<para/> +<table frame="all" xml:id="table.networkingts_headers"> +<title>Networking TS Headers</title> + +<tgroup cols="4" align="left" colsep="1" rowsep="1"> +<colspec colname="c1"/> +<colspec colname="c2"/> +<colspec colname="c3"/> +<colspec colname="c4"/> +<tbody> +<row> +<entry><filename class="headerfile">experimental/buffer</filename></entry> +<entry><filename class="headerfile">experimental/executor</filename></entry> +<entry><filename class="headerfile">experimental/internet</filename></entry> +<entry><filename class="headerfile">experimental/io_context</filename></entry> +</row> +<row> +<entry><filename class="headerfile">experimental/net</filename></entry> +<entry><filename class="headerfile">experimental/netfwd</filename></entry> +<entry><filename class="headerfile">experimental/socket</filename></entry> +<entry><filename class="headerfile">experimental/timer</filename></entry> </row> </tbody> </tgroup> -- 2.43.0