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).
</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>
shows the C++2a include files.
These are available in C++2a compilation
mode, i.e. <code class="literal">-std=c++2a</code> or <code class="literal">-std=gnu++2a</code>.
shows the C++20 include files.
These are available in C++20 compilation
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
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>
The following headers have been removed in the C++2a working draft.
</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++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.
</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
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.
</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>
<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>,
</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.14. Library Fundamentals TS Headers">Table 3.14, “Library Fundamentals TS Headers”</a>,
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.
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.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:
</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
<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:
</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.
</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
possible. It's an all-or-nothing affair. Thus, code like
</p><pre class="programlisting">

View File

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