libstdc++: Add all supported headers to lists in the manual

libstdc++-v3/ChangeLog:

	* doc/xml/manual/using.xml: Update tables of supported headers.
	* doc/html/*: Regenerate.
This commit is contained in:
Jonathan Wakely 2024-01-23 14:49:51 +00:00
parent 86302e1a76
commit 00b2d7d17c
3 changed files with 192 additions and 33 deletions

File diff suppressed because one or more lines are too long

View File

@ -55,41 +55,67 @@ Unless specified otherwise below, they are also available in later modes
(C++20 etc). (C++20 etc).
</p><p></p><div class="table"><a id="table.cxx17_headers"></a><p class="title"><strong>Table 3.8. C++ 2017 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2017 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">any</code></td><td align="left"><code class="filename">charconv</code></td><td align="left"><code class="filename">execution</code></td><td align="left"><code class="filename">filesystem</code></td><td align="left"><code class="filename">memory_resource</code></td></tr><tr><td align="left"><code class="filename">optional</code></td><td align="left"><code class="filename">string_view</code></td><td align="left"><code class="filename">variant</code></td><td colspan="2" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> </p><p></p><div class="table"><a id="table.cxx17_headers"></a><p class="title"><strong>Table 3.8. C++ 2017 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2017 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">any</code></td><td align="left"><code class="filename">charconv</code></td><td align="left"><code class="filename">execution</code></td><td align="left"><code class="filename">filesystem</code></td><td align="left"><code class="filename">memory_resource</code></td></tr><tr><td align="left"><code class="filename">optional</code></td><td align="left"><code class="filename">string_view</code></td><td align="left"><code class="filename">variant</code></td><td colspan="2" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
<a class="xref" href="using_headers.html#table.cxx20_headers" title="Table 3.9. C++ 2020 Library Headers">Table 3.9, “C++ 2020 Library Headers”</a> <a class="xref" href="using_headers.html#table.cxx20_headers" title="Table 3.9. C++ 2020 Library Headers">Table 3.9, “C++ 2020 Library Headers”</a>
shows the C++2a include files. shows the C++20 include files.
These are available in C++2a compilation These are available in C++20 compilation
mode, i.e. <code class="literal">-std=c++2a</code> or <code class="literal">-std=gnu++2a</code>. mode, i.e. <code class="literal">-std=c++20</code> or <code class="literal">-std=gnu++20</code>.
Including these headers in earlier modes will not result in Including these headers in earlier modes will not result in
compilation errors, but will not define anything. compilation errors, but will not define anything.
</p><p></p><div class="table"><a id="table.cxx20_headers"></a><p class="title"><strong>Table 3.9. C++ 2020 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">bit</code></td><td align="left"><code class="filename">version</code></td></tr></tbody></table></div></div><br class="table-break" /><p> </p><p></p><div class="table"><a id="table.cxx20_headers"></a><p class="title"><strong>Table 3.9. C++ 2020 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">barrier</code></td><td align="left"><code class="filename">bit</code></td><td align="left"><code class="filename">charconv</code></td><td align="left"><code class="filename">compare</code></td><td align="left"><code class="filename">concepts</code></td></tr><tr><td align="left"><code class="filename">coroutine</code></td><td align="left"><code class="filename">format</code></td><td align="left"><code class="filename">latch</code></td><td align="left"><code class="filename">numbers</code></td><td align="left"><code class="filename">ranges</code></td></tr><tr><td align="left"><code class="filename">semaphore</code></td><td align="left"><code class="filename">source_location</code></td><td align="left"><code class="filename">span</code></td><td align="left"><code class="filename">stop_token</code></td><td align="left"><code class="filename">syncstream</code></td></tr><tr><td align="left"><code class="filename">version</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
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 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. Programs that intend to be portable should not include them.
</p><div class="table"><a id="table.cxx20_deprheaders"></a><p class="title"><strong>Table 3.10. C++ 2020 Obsolete Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Obsolete Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">cstdalign</code></td><td align="left"><code class="filename">cstdbool</code></td><td align="left"><code class="filename">ctgmath</code></td></tr></tbody></table></div></div><br class="table-break" /><p> </p><div class="table"><a id="table.cxx20_deprheaders"></a><p class="title"><strong>Table 3.10. C++ 2020 Obsolete Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Obsolete Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">cstdalign</code></td><td align="left"><code class="filename">cstdbool</code></td><td align="left"><code class="filename">ctgmath</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
<a class="xref" href="using_headers.html#table.filesystemts_headers" title="Table 3.11. File System TS Header">Table 3.11, “File System TS Header”</a>, <a class="xref" href="using_headers.html#table.cxx23_headers" title="Table 3.11. C++ 2023 Library Headers">Table 3.11, “C++ 2023 Library Headers”</a>
shows the C++23 include files.
These are available in C++23 compilation
mode, i.e. <code class="literal">-std=c++23</code> or <code class="literal">-std=gnu++23</code>.
Including these headers in earlier modes will not result in
compilation errors, but will not define anything.
</p><p></p><div class="table"><a id="table.cxx23_headers"></a><p class="title"><strong>Table 3.11. C++ 2023 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2023 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">expected</code></td><td align="left"><code class="filename">generator</code></td><td align="left"><code class="filename">print</code></td><td align="left"><code class="filename">spanstream</code></td><td align="left"><code class="filename">stacktrace</code></td></tr><tr><td align="left"><code class="filename">stdatomic.h</code></td><td align="left"><code class="filename">stdfloat</code></td><td colspan="3" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
<a class="xref" href="using_headers.html#table.cxx26_headers" title="Table 3.12. C++ 2026 Library Headers">Table 3.12, “C++ 2026 Library Headers”</a>
shows the C++26 include files.
These are available in C++26 compilation
mode, i.e. <code class="literal">-std=c++26</code> or <code class="literal">-std=gnu++26</code>.
Including these headers in earlier modes will not result in
compilation errors, but will not define anything.
</p><p></p><div class="table"><a id="table.cxx26_headers"></a><p class="title"><strong>Table 3.12. C++ 2026 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ 2026 Library Headers" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">text_encoding</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
<a class="xref" href="using_headers.html#table.filesystemts_headers" title="Table 3.13. File System TS Header">Table 3.13, “File System TS Header”</a>,
shows the additional include file define by the 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. This is available in C++11 and later compilation modes.
Including this header in earlier modes will not result in Including this header in earlier modes will not result in
compilation errors, but will not define anything. compilation errors, but will not define anything.
</p><p></p><div class="table"><a id="table.filesystemts_headers"></a><p class="title"><strong>Table 3.11. File System TS Header</strong></p><div class="table-contents"><table class="table" summary="File System TS Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">experimental/filesystem</code></td></tr></tbody></table></div></div><br class="table-break" /><p> </p><p></p><div class="table"><a id="table.filesystemts_headers"></a><p class="title"><strong>Table 3.13. File System TS Header</strong></p><div class="table-contents"><table class="table" summary="File System TS Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">experimental/filesystem</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
<a class="xref" href="using_headers.html#table.libfundts_headers" title="Table 3.12. Library Fundamentals TS Headers">Table 3.12, “Library Fundamentals TS Headers”</a>, <a class="xref" href="using_headers.html#table.libfundts_headers" title="Table 3.14. Library Fundamentals TS Headers">Table 3.14, “Library Fundamentals TS Headers”</a>,
shows the additional include files define by the C++ Extensions for shows the additional include files define by the C++ Extensions for
Library Fundamentals Technical Specification, ISO/IEC TS 19568. 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
<code class="filename">&lt;experimental/scope&gt;</code>
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.
</p><p></p><div class="table"><a id="table.libfundts_headers"></a><p class="title"><strong>Table 3.14. Library Fundamentals TS Headers</strong></p><div class="table-contents"><table class="table" summary="Library Fundamentals TS Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">experimental/algorithm</code></td><td align="left"><code class="filename">experimental/any</code></td><td align="left"><code class="filename">experimental/array</code></td><td align="left"><code class="filename">experimental/chrono</code></td><td align="left"><code class="filename">experimental/deque</code></td></tr><tr><td align="left"><code class="filename">experimental/forward_list</code></td><td align="left"><code class="filename">experimental/functional</code></td><td align="left"><code class="filename">experimental/iterator</code></td><td align="left"><code class="filename">experimental/list</code></td><td align="left"><code class="filename">experimental/map</code></td></tr><tr><td align="left"><code class="filename">experimental/memory</code></td><td align="left"><code class="filename">experimental/memory_resource</code></td><td align="left"><code class="filename">experimental/numeric</code></td><td align="left"><code class="filename">experimental/optional</code></td><td align="left"><code class="filename">experimental/propagate_const</code></td></tr><tr><td align="left"><code class="filename">experimental/random</code></td><td align="left"><code class="filename">experimental/ratio</code></td><td align="left"><code class="filename">experimental/regex</code></td><td align="left"><code class="filename">experimental/scope</code></td><td align="left"><code class="filename">experimental/set</code></td></tr><tr><td align="left"><code class="filename">experimental/source_location</code></td><td align="left"><code class="filename">experimental/string</code></td><td align="left"><code class="filename">experimental/string_view</code></td><td align="left"><code class="filename">experimental/system_error</code></td><td align="left"><code class="filename">experimental/tuple</code></td></tr><tr><td align="left"><code class="filename">experimental/type_traits</code></td><td align="left"><code class="filename">experimental/unordered_map</code></td><td align="left"><code class="filename">experimental/unordered_set</code></td><td align="left"><code class="filename">experimental/utility</code></td><td align="left"><code class="filename">experimental/vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
<a class="xref" href="using_headers.html#table.networkingts_headers" title="Table 3.15. Networking TS Headers">Table 3.15, “Networking TS Headers”</a>,
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. These are available in C++14 and later compilation modes.
Including these headers in earlier modes will not result in Including these headers in earlier modes will not result in
compilation errors, but will not define anything. compilation errors, but will not define anything.
</p><p></p><div class="table"><a id="table.libfundts_headers"></a><p class="title"><strong>Table 3.12. Library Fundamentals TS Headers</strong></p><div class="table-contents"><table class="table" summary="Library Fundamentals TS Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">experimental/algorithm</code></td><td align="left"><code class="filename">experimental/any</code></td><td align="left"><code class="filename">experimental/array</code></td><td align="left"><code class="filename">experimental/chrono</code></td><td align="left"><code class="filename">experimental/deque</code></td></tr><tr><td align="left"><code class="filename">experimental/forward_list</code></td><td align="left"><code class="filename">experimental/functional</code></td><td align="left"><code class="filename">experimental/iterator</code></td><td align="left"><code class="filename">experimental/list</code></td><td align="left"><code class="filename">experimental/map</code></td></tr><tr><td align="left"><code class="filename">experimental/memory</code></td><td align="left"><code class="filename">experimental/memory_resource</code></td><td align="left"><code class="filename">experimental/numeric</code></td><td align="left"><code class="filename">experimental/optional</code></td><td align="left"><code class="filename">experimental/propagate_const</code></td></tr><tr><td align="left"><code class="filename">experimental/random</code></td><td align="left"><code class="filename">experimental/ratio</code></td><td align="left"><code class="filename">experimental/regex</code></td><td align="left"><code class="filename">experimental/set</code></td><td align="left"><code class="filename">experimental/source_location</code></td></tr><tr><td align="left"><code class="filename">experimental/string</code></td><td align="left"><code class="filename">experimental/string_view</code></td><td align="left"><code class="filename">experimental/system_error</code></td><td align="left"><code class="filename">experimental/tuple</code></td><td align="left"><code class="filename">experimental/type_traits</code></td></tr><tr><td align="left"><code class="filename">experimental/unordered_map</code></td><td align="left"><code class="filename">experimental/unordered_set</code></td><td align="left"><code class="filename">experimental/utility</code></td><td align="left"><code class="filename">experimental/vector</code></td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> </p><p></p><div class="table"><a id="table.networkingts_headers"></a><p class="title"><strong>Table 3.15. Networking TS Headers</strong></p><div class="table-contents"><table class="table" summary="Networking TS Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><tbody><tr><td align="left"><code class="filename">experimental/buffer</code></td><td align="left"><code class="filename">experimental/executor</code></td><td align="left"><code class="filename">experimental/internet</code></td><td align="left"><code class="filename">experimental/io_context</code></td></tr><tr><td align="left"><code class="filename">experimental/net</code></td><td align="left"><code class="filename">experimental/netfwd</code></td><td align="left"><code class="filename">experimental/socket</code></td><td align="left"><code class="filename">experimental/timer</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
In addition, TR1 includes as: In addition, TR1 includes as:
</p><div class="table"><a id="table.tr1_headers"></a><p class="title"><strong>Table 3.13. C++ TR 1 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ TR 1 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/functional</code></td><td align="left"><code class="filename">tr1/random</code></td></tr><tr><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/utility</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="table.tr1_cheaders"></a><p class="title"><strong>Table 3.14. C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table class="table" summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/cstdio</code></td></tr><tr><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/ctime</code></td><td align="left"><code class="filename">tr1/cwchar</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Decimal floating-point arithmetic is available if the C++ </p><div class="table"><a id="table.tr1_headers"></a><p class="title"><strong>Table 3.16. C++ TR 1 Library Headers</strong></p><div class="table-contents"><table class="table" summary="C++ TR 1 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/functional</code></td><td align="left"><code class="filename">tr1/random</code></td></tr><tr><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/utility</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="table.tr1_cheaders"></a><p class="title"><strong>Table 3.17. C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table class="table" summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/cstdio</code></td></tr><tr><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/ctime</code></td><td align="left"><code class="filename">tr1/cwchar</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Decimal floating-point arithmetic is available if the C++
compiler supports scalar decimal floating-point types defined via compiler supports scalar decimal floating-point types defined via
<code class="code">__attribute__((mode(SD|DD|LD)))</code>. <code class="code">__attribute__((mode(SD|DD|LD)))</code>.
</p><div class="table"><a id="table.decfp_headers"></a><p class="title"><strong>Table 3.15. C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table class="table" summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break" /><p> </p><div class="table"><a id="table.decfp_headers"></a><p class="title"><strong>Table 3.18. C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table class="table" summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
Also included are files for the C++ ABI interface: Also included are files for the C++ ABI interface:
</p><div class="table"><a id="table.abi_headers"></a><p class="title"><strong>Table 3.16. C++ ABI Headers</strong></p><div class="table-contents"><table class="table" summary="C++ ABI Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p> </p><div class="table"><a id="table.abi_headers"></a><p class="title"><strong>Table 3.19. C++ ABI Headers</strong></p><div class="table-contents"><table class="table" summary="C++ ABI Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
And a large variety of extensions. And a large variety of extensions.
</p><div class="table"><a id="table.ext_headers"></a><p class="title"><strong>Table 3.17. Extension Headers</strong></p><div class="table-contents"><table class="table" summary="Extension Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/cast.h</code></td><td class="auto-generated"> </td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/slist</code></td></tr><tr><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left"><code class="filename">ext/typelist.h</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/vstring.h</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="table.debug_headers"></a><p class="title"><strong>Table 3.18. Extension Debug Headers</strong></p><div class="table-contents"><table class="table" summary="Extension Debug Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/array</code></td><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/forward_list</code></td><td align="left"><code class="filename">debug/list</code></td></tr><tr><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/set</code></td><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/unordered_set</code></td></tr><tr><td align="left"><code class="filename">debug/vector</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="table.parallel_headers"></a><p class="title"><strong>Table 3.19. Extension Parallel Headers</strong></p><div class="table-contents"><table class="table" summary="Extension Parallel Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules. </p><div class="table"><a id="table.ext_headers"></a><p class="title"><strong>Table 3.20. Extension Headers</strong></p><div class="table-contents"><table class="table" summary="Extension Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/cast.h</code></td><td class="auto-generated"> </td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/slist</code></td></tr><tr><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left"><code class="filename">ext/typelist.h</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/vstring.h</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="table.debug_headers"></a><p class="title"><strong>Table 3.21. Extension Debug Headers</strong></p><div class="table-contents"><table class="table" summary="Extension Debug Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/array</code></td><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/forward_list</code></td><td align="left"><code class="filename">debug/list</code></td></tr><tr><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/set</code></td><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/unordered_set</code></td></tr><tr><td align="left"><code class="filename">debug/vector</code></td><td colspan="4" align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="table.parallel_headers"></a><p class="title"><strong>Table 3.22. Extension Parallel Headers</strong></p><div class="table-contents"><table class="table" summary="Extension Parallel Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules.
</p><p>First, mixing different dialects of the standard headers is not </p><p>First, mixing different dialects of the standard headers is not
possible. It's an all-or-nothing affair. Thus, code like possible. It's an all-or-nothing affair. Thus, code like
</p><pre class="programlisting"> </p><pre class="programlisting">

View File

@ -468,9 +468,9 @@ Unless specified otherwise below, they are also available in later modes
<para> <para>
<xref linkend="table.cxx20_headers"/> <xref linkend="table.cxx20_headers"/>
shows the C++2a include files. shows the C++20 include files.
These are available in C++2a compilation These are available in C++20 compilation
mode, i.e. <literal>-std=c++2a</literal> or <literal>-std=gnu++2a</literal>. mode, i.e. <literal>-std=c++20</literal> or <literal>-std=gnu++20</literal>.
Including these headers in earlier modes will not result in Including these headers in earlier modes will not result in
compilation errors, but will not define anything. 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"> <table frame="all" xml:id="table.cxx20_headers">
<title>C++ 2020 Library Headers</title> <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="c1"/>
<colspec colname="c2"/> <colspec colname="c2"/>
<!--
<colspec colname="c3"/> <colspec colname="c3"/>
<colspec colname="c4"/> <colspec colname="c4"/>
<colspec colname="c5"/> <colspec colname="c5"/>
-->
<tbody> <tbody>
<row> <row>
<entry><filename class="headerfile">barrier</filename></entry>
<entry><filename class="headerfile">bit</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> </row>
<!-- TODO compare, concepts, contract, span, syncstream -->
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
<para> <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 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. Programs that intend to be portable should not include them.
</para> </para>
@ -529,10 +547,86 @@ Unless specified otherwise below, they are also available in later modes
</tgroup> </tgroup>
</table> </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> <para>
<xref linkend="table.filesystemts_headers"/>, <xref linkend="table.filesystemts_headers"/>,
shows the additional include file define by the 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. This is available in C++11 and later compilation modes.
Including this header in earlier modes will not result in Including this header in earlier modes will not result in
compilation errors, but will not define anything. compilation errors, but will not define anything.
@ -556,8 +650,11 @@ compilation errors, but will not define anything.
<para> <para>
<xref linkend="table.libfundts_headers"/>, <xref linkend="table.libfundts_headers"/>,
shows the additional include files define by the C++ Extensions for shows the additional include files define by the C++ Extensions for
Library Fundamentals Technical Specification, ISO/IEC TS 19568. Library Fundamentals Technical Specification, ISO/IEC TS 19568:2015,
These are available in C++14 and later compilation modes. 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">&lt;experimental/scope&gt;</filename>
which is available in C++20 and later compilation modes.
Including these headers in earlier modes will not result in Including these headers in earlier modes will not result in
compilation errors, but will not define anything. compilation errors, but will not define anything.
</para> </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/random</filename></entry>
<entry><filename class="headerfile">experimental/ratio</filename></entry> <entry><filename class="headerfile">experimental/ratio</filename></entry>
<entry><filename class="headerfile">experimental/regex</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/set</filename></entry>
<entry><filename class="headerfile">experimental/source_location</filename></entry>
</row> </row>
<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</filename></entry>
<entry><filename class="headerfile">experimental/string_view</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/system_error</filename></entry>
<entry><filename class="headerfile">experimental/tuple</filename></entry> <entry><filename class="headerfile">experimental/tuple</filename></entry>
<entry><filename class="headerfile">experimental/type_traits</filename></entry>
</row> </row>
<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_map</filename></entry>
<entry><filename class="headerfile">experimental/unordered_set</filename></entry> <entry><filename class="headerfile">experimental/unordered_set</filename></entry>
<entry><filename class="headerfile">experimental/utility</filename></entry> <entry><filename class="headerfile">experimental/utility</filename></entry>
<entry><filename class="headerfile">experimental/vector</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> </row>
</tbody> </tbody>
</tgroup> </tgroup>