From 00b2d7d17c38bdf3d26786c7030dc47454678c44 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 23 Jan 2024 14:49:51 +0000 Subject: 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. --- libstdc++-v3/doc/html/manual/index.html | 2 +- libstdc++-v3/doc/html/manual/using_headers.html | 58 ++++++--- libstdc++-v3/doc/xml/manual/using.xml | 163 +++++++++++++++++++++--- 3 files changed, 191 insertions(+), 32 deletions(-) (limited to 'libstdc++-v3') diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index 1639c95..ef58061 100644 --- a/libstdc++-v3/doc/html/manual/index.html +++ b/libstdc++-v3/doc/html/manual/index.html @@ -145,7 +145,7 @@ Support for C++11 dialect.
21.10. Non-unique Mapping Containers
21.11. Point Iterator Hierarchy
21.12. Invalidation Guarantee Tags Hierarchy
21.13. Container Tag Hierarchy
21.14. Hash functions, ranged-hash functions, and range-hashing functions
21.15. Insert hash sequence diagram
21.16. Insert hash sequence diagram with a null policy
21.17. Hash policy class diagram
21.18. Balls and bins
21.19. Insert resize sequence diagram
21.20. Standard resize policy trigger sequence diagram
21.21. Standard resize policy size sequence - diagram
21.22. Tree node invariants
21.23. Tree node invalidation
21.24. A tree and its update policy
21.25. Restoring node invariants
21.26. Insert update sequence
21.27. Useless update path
21.28. A PATRICIA trie
21.29. A trie and its update policy
21.30. A simple list
21.31. The counter algorithm
21.32. Underlying Priority-Queue Data-Structures.
21.33. Priority-Queue Data-Structure Tags.
B.1. Configure and Build File Dependencies

List of Tables

1.1. C++ 1998/2003 Implementation Status
1.2. C++ 2011 Implementation Status
1.3. C++ 2014 Implementation Status
1.4. C++ Technical Specifications Implementation Status
1.5. C++ 2017 Library Features
1.6. C++ 2017 Implementation Status
1.7. C++ Technical Specifications Implementation Status
1.8. Support for Extended ABI Tags
1.9. C++ 2020 Library Features
1.10. C++ 2023 Library Features
1.11. C++ TR1 Implementation Status
1.12. C++ TR 24733 Implementation Status
1.13. C++ Special Functions Implementation Status
3.1. C++ Command Options
3.2. C++ 1998 Library Headers
3.3. C++ 1998 Library Headers for C Library Facilities
3.4. C++ 1998 Deprecated Library Header
3.5. C++ 2011 Library Headers
3.6. C++ 2011 Library Headers for C Library Facilities
3.7. C++ 2014 Library Header
3.8. C++ 2017 Library Headers
3.9. C++ 2020 Library Headers
3.10. C++ 2020 Obsolete Headers
3.11. File System TS Header
3.12. Library Fundamentals TS Headers
3.13. C++ TR 1 Library Headers
3.14. C++ TR 1 Library Headers for C Library Facilities
3.15. C++ TR 24733 Decimal Floating-Point Header
3.16. C++ ABI Headers
3.17. Extension Headers
3.18. Extension Debug Headers
3.19. Extension Parallel Headers
17.1. Debugging Containers
17.2. Debugging Containers C++11
18.1. Parallel Algorithms
20.1. Bitmap Allocator Memory Map
B.1. Doxygen Prerequisites
B.2. HTML to Doxygen Markup Comparison
B.3. Docbook Prerequisites
B.4. HTML to Docbook XML Markup Comparison
B.5. Docbook XML Element Use
B.6. Extension Allocators
B.7. Extension Allocators Continued

List of Equations

21.1. Ranged Hash Function
21.2. Range-Hashing, Division Method
21.3. Division via Prime Modulo
21.4. Division via Bit Mask
21.5. + diagram
21.22. Tree node invariants
21.23. Tree node invalidation
21.24. A tree and its update policy
21.25. Restoring node invariants
21.26. Insert update sequence
21.27. Useless update path
21.28. A PATRICIA trie
21.29. A trie and its update policy
21.30. A simple list
21.31. The counter algorithm
21.32. Underlying Priority-Queue Data-Structures.
21.33. Priority-Queue Data-Structure Tags.
B.1. Configure and Build File Dependencies

List of Tables

1.1. C++ 1998/2003 Implementation Status
1.2. C++ 2011 Implementation Status
1.3. C++ 2014 Implementation Status
1.4. C++ Technical Specifications Implementation Status
1.5. C++ 2017 Library Features
1.6. C++ 2017 Implementation Status
1.7. C++ Technical Specifications Implementation Status
1.8. Support for Extended ABI Tags
1.9. C++ 2020 Library Features
1.10. C++ 2023 Library Features
1.11. C++ TR1 Implementation Status
1.12. C++ TR 24733 Implementation Status
1.13. C++ Special Functions Implementation Status
3.1. C++ Command Options
3.2. C++ 1998 Library Headers
3.3. C++ 1998 Library Headers for C Library Facilities
3.4. C++ 1998 Deprecated Library Header
3.5. C++ 2011 Library Headers
3.6. C++ 2011 Library Headers for C Library Facilities
3.7. C++ 2014 Library Header
3.8. C++ 2017 Library Headers
3.9. C++ 2020 Library Headers
3.10. C++ 2020 Obsolete Headers
3.11. C++ 2023 Library Headers
3.12. C++ 2026 Library Headers
3.13. File System TS Header
3.14. Library Fundamentals TS Headers
3.15. Networking TS Headers
3.16. C++ TR 1 Library Headers
3.17. C++ TR 1 Library Headers for C Library Facilities
3.18. C++ TR 24733 Decimal Floating-Point Header
3.19. C++ ABI Headers
3.20. Extension Headers
3.21. Extension Debug Headers
3.22. Extension Parallel Headers
17.1. Debugging Containers
17.2. Debugging Containers C++11
18.1. Parallel Algorithms
20.1. Bitmap Allocator Memory Map
B.1. Doxygen Prerequisites
B.2. HTML to Doxygen Markup Comparison
B.3. Docbook Prerequisites
B.4. HTML to Docbook XML Markup Comparison
B.5. Docbook XML Element Use
B.6. Extension Allocators
B.7. Extension Allocators Continued

List of Equations

21.1. Ranged Hash Function
21.2. Range-Hashing, Division Method
21.3. Division via Prime Modulo
21.4. Division via Bit Mask
21.5. A Standard String Hash Function
21.6. Only k String DNA Hash diff --git a/libstdc++-v3/doc/html/manual/using_headers.html b/libstdc++-v3/doc/html/manual/using_headers.html index da86cf7..a267e08 100644 --- a/libstdc++-v3/doc/html/manual/using_headers.html +++ b/libstdc++-v3/doc/html/manual/using_headers.html @@ -55,41 +55,67 @@ Unless specified otherwise below, they are also available in later modes (C++20 etc).

Table 3.8. C++ 2017 Library Headers

anycharconvexecutionfilesystemmemory_resource
optionalstring_viewvariant 

Table 3.9, “C++ 2020 Library Headers” -shows the C++2a include files. -These are available in C++2a compilation -mode, i.e. -std=c++2a or -std=gnu++2a. +shows the C++20 include files. +These are available in C++20 compilation +mode, i.e. -std=c++20 or -std=gnu++20. Including these headers in earlier modes will not result in compilation errors, but will not define anything. -

Table 3.9. C++ 2020 Library Headers

bitversion

- The following headers have been removed in the C++2a working draft. +

Table 3.9. C++ 2020 Library Headers

barrierbitcharconvcompareconcepts
coroutineformatlatchnumbersranges
semaphoresource_locationspanstop_tokensyncstream
version 

+ 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.

Table 3.10. C++ 2020 Obsolete Headers

ccomplexciso646cstdaligncstdboolctgmath

-Table 3.11, “File System TS Header”, +Table 3.11, “C++ 2023 Library Headers” +shows the C++23 include files. +These are available in C++23 compilation +mode, i.e. -std=c++23 or -std=gnu++23. +Including these headers in earlier modes will not result in +compilation errors, but will not define anything. + +

Table 3.11. C++ 2023 Library Headers

expectedgeneratorprintspanstreamstacktrace
stdatomic.hstdfloat 

+Table 3.12, “C++ 2026 Library Headers” +shows the C++26 include files. +These are available in C++26 compilation +mode, i.e. -std=c++26 or -std=gnu++26. +Including these headers in earlier modes will not result in +compilation errors, but will not define anything. + +

Table 3.12. C++ 2026 Library Headers

text_encoding

+Table 3.13, “File System TS Header”, 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. -

Table 3.11. File System TS Header

experimental/filesystem

-Table 3.12, “Library Fundamentals TS Headers”, +

Table 3.13. File System TS Header

experimental/filesystem

+Table 3.14, “Library Fundamentals TS Headers”, 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 +<experimental/scope> +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. +

Table 3.14. Library Fundamentals TS Headers

experimental/algorithmexperimental/anyexperimental/arrayexperimental/chronoexperimental/deque
experimental/forward_listexperimental/functionalexperimental/iteratorexperimental/listexperimental/map
experimental/memoryexperimental/memory_resourceexperimental/numericexperimental/optionalexperimental/propagate_const
experimental/randomexperimental/ratioexperimental/regexexperimental/scopeexperimental/set
experimental/source_locationexperimental/stringexperimental/string_viewexperimental/system_errorexperimental/tuple
experimental/type_traitsexperimental/unordered_mapexperimental/unordered_setexperimental/utilityexperimental/vector

+Table 3.15, “Networking TS 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. -

Table 3.12. Library Fundamentals TS Headers

experimental/algorithmexperimental/anyexperimental/arrayexperimental/chronoexperimental/deque
experimental/forward_listexperimental/functionalexperimental/iteratorexperimental/listexperimental/map
experimental/memoryexperimental/memory_resourceexperimental/numericexperimental/optionalexperimental/propagate_const
experimental/randomexperimental/ratioexperimental/regexexperimental/setexperimental/source_location
experimental/stringexperimental/string_viewexperimental/system_errorexperimental/tupleexperimental/type_traits
experimental/unordered_mapexperimental/unordered_setexperimental/utilityexperimental/vector 

+

Table 3.15. Networking TS Headers

experimental/bufferexperimental/executorexperimental/internetexperimental/io_context
experimental/netexperimental/netfwdexperimental/socketexperimental/timer

In addition, TR1 includes as: -

Table 3.13. C++ TR 1 Library Headers

tr1/arraytr1/complextr1/memorytr1/functionaltr1/random
tr1/regextr1/tupletr1/type_traitstr1/unordered_maptr1/unordered_set
tr1/utility 

Table 3.14. C++ TR 1 Library Headers for C Library Facilities

tr1/ccomplextr1/cfenvtr1/cfloattr1/cmathtr1/cinttypes
tr1/climitstr1/cstdargtr1/cstdbooltr1/cstdinttr1/cstdio
tr1/cstdlibtr1/ctgmathtr1/ctimetr1/cwchartr1/cwctype

Decimal floating-point arithmetic is available if the C++ +

Table 3.16. C++ TR 1 Library Headers

tr1/arraytr1/complextr1/memorytr1/functionaltr1/random
tr1/regextr1/tupletr1/type_traitstr1/unordered_maptr1/unordered_set
tr1/utility 

Table 3.17. C++ TR 1 Library Headers for C Library Facilities

tr1/ccomplextr1/cfenvtr1/cfloattr1/cmathtr1/cinttypes
tr1/climitstr1/cstdargtr1/cstdbooltr1/cstdinttr1/cstdio
tr1/cstdlibtr1/ctgmathtr1/ctimetr1/cwchartr1/cwctype

Decimal floating-point arithmetic is available if the C++ compiler supports scalar decimal floating-point types defined via __attribute__((mode(SD|DD|LD))). -

Table 3.15. C++ TR 24733 Decimal Floating-Point Header

decimal/decimal

+

Table 3.18. C++ TR 24733 Decimal Floating-Point Header

decimal/decimal

Also included are files for the C++ ABI interface: -

Table 3.16. C++ ABI Headers

cxxabi.hcxxabi_forced.h

+

Table 3.19. C++ ABI Headers

cxxabi.hcxxabi_forced.h

And a large variety of extensions. -

Table 3.17. Extension Headers

ext/algorithmext/atomicity.hext/bitmap_allocator.hext/cast.h 
ext/codecvt_specializations.hext/concurrence.hext/debug_allocator.hext/enc_filebuf.hext/extptr_allocator.h
ext/functionalext/iteratorext/malloc_allocator.hext/memoryext/mt_allocator.h
ext/new_allocator.hext/numericext/numeric_traits.hext/pb_ds/assoc_container.hext/pb_ds/priority_queue.h
ext/pod_char_traits.hext/pool_allocator.hext/rb_treeext/ropeext/slist
ext/stdio_filebuf.hext/stdio_sync_filebuf.hext/throw_allocator.hext/typelist.hext/type_traits.h
ext/vstring.h 

Table 3.18. Extension Debug Headers

debug/arraydebug/bitsetdebug/dequedebug/forward_listdebug/list
debug/mapdebug/setdebug/stringdebug/unordered_mapdebug/unordered_set
debug/vector 

Table 3.19. Extension Parallel Headers

parallel/algorithmparallel/numeric

Mixing Headers

A few simple rules. +

Table 3.20. Extension Headers

ext/algorithmext/atomicity.hext/bitmap_allocator.hext/cast.h 
ext/codecvt_specializations.hext/concurrence.hext/debug_allocator.hext/enc_filebuf.hext/extptr_allocator.h
ext/functionalext/iteratorext/malloc_allocator.hext/memoryext/mt_allocator.h
ext/new_allocator.hext/numericext/numeric_traits.hext/pb_ds/assoc_container.hext/pb_ds/priority_queue.h
ext/pod_char_traits.hext/pool_allocator.hext/rb_treeext/ropeext/slist
ext/stdio_filebuf.hext/stdio_sync_filebuf.hext/throw_allocator.hext/typelist.hext/type_traits.h
ext/vstring.h 

Table 3.21. Extension Debug Headers

debug/arraydebug/bitsetdebug/dequedebug/forward_listdebug/list
debug/mapdebug/setdebug/stringdebug/unordered_mapdebug/unordered_set
debug/vector 

Table 3.22. Extension Parallel Headers

parallel/algorithmparallel/numeric

Mixing Headers

A few simple rules.

First, mixing different dialects of the standard headers is not possible. It's an all-or-nothing affair. Thus, code like

diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml
index 7276cad..b3b0c36 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
 
 
 
-shows the C++2a include files.
-These are available in C++2a compilation
-mode, i.e. -std=c++2a or -std=gnu++2a.
+shows the C++20 include files.
+These are available in C++20 compilation
+mode, i.e. -std=c++20 or -std=gnu++20.
 Including these headers in earlier modes will not result in
 compilation errors, but will not define anything.
 
 
 
+barrier
 bit
+charconv
+compare
+concepts
+
+
+coroutine
+format
+latch
+numbers
+ranges
+
+
+semaphore
+source_location
+span
+stop_token
+syncstream
+
+
 version
+
 
-
 
 
 
 
 
-  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.
 
 
@@ -530,9 +548,85 @@ Unless specified otherwise below, they are also available in later modes
 
 
 
+
+shows the C++23 include files.
+These are available in C++23 compilation
+mode, i.e. -std=c++23 or -std=gnu++23.
+Including these headers in earlier modes will not result in
+compilation errors, but will not define anything.
+
+
+
+
+
+C++ 2023 Library Headers
+
+
+
+
+
+
+
+
+
+expected
+generator
+print
+spanstream
+stacktrace
+
+
+stdatomic.h
+stdfloat
+
+
+
+
+
+
+ + + +shows the C++26 include files. +These are available in C++26 compilation +mode, i.e. -std=c++26 or -std=gnu++26. +Including these headers in earlier modes will not result in +compilation errors, but will not define anything. + + + + + +C++ 2026 Library Headers + + + + + + +text_encoding + + + + +
+ + + , 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. , 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 +<experimental/scope> +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. @@ -598,22 +695,58 @@ compilation errors, but will not define anything. experimental/random experimental/ratio experimental/regex +experimental/scope experimental/set -experimental/source_location +experimental/source_location experimental/string experimental/string_view experimental/system_error experimental/tuple -experimental/type_traits +experimental/type_traits experimental/unordered_map experimental/unordered_set experimental/utility experimental/vector - + + + + + + + +, +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. + + + + +Networking TS Headers + + + + + + + + +experimental/buffer +experimental/executor +experimental/internet +experimental/io_context + + +experimental/net +experimental/netfwd +experimental/socket +experimental/timer -- cgit v1.1