From: Tomasz Kamiński Date: Wed, 1 Oct 2025 11:47:25 +0000 (+0200) Subject: libstdc++: Add C++2020 Implementation status table. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=deb7e9312adc029db91a8bd51e599d6e00d63314;p=thirdparty%2Fgcc.git libstdc++: Add C++2020 Implementation status table. This is derived from Table of Content of the ISO/IEC 14882:2020. Section are included up to depth limit of 3 in majority of the cases. libstdc++-v3/ChangeLog: * doc/html/manual/index.html: Regenerated. * doc/html/manual/status.html: Regenerated. * doc/xml/manual/status_cxx2020.xml: Added status table. Reviewed-by: Jonathan Wakely --- diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index 816a87a291c..fb61205678f 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. 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 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++ 2020 Implementation Status
1.11. C++ 2023 Library Features
1.12. C++ TR1 Implementation Status
1.13. C++ TR 24733 Implementation Status
1.14. 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/status.html b/libstdc++-v3/doc/html/manual/status.html index 164faebbf37..465bc6ccafe 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1759,7 +1759,101 @@ Note 1: This feature is supported in older releases but the Note 2: The C++20 calendar types are supported since 11.1, time zones and UTC are supported since 13.1, and chrono::parse is supported since 14.1. -

Implementation Specific Behavior

For behaviour which is also specified by previous standards, +

+The following status table is based on the table of contents of +ISO/IEC 14882:2020. +Some subclauses are not shown in the table where the content is unchanged +since C++17 and the implementation is complete. +

Table 1.10. C++ 2020 Implementation Status

SectionDescriptionStatusComments
+ 17 + + Language support library +
17.1General  
17.2Common definitions  
17.2.1Header <cstddef> synopsisY 
17.2.2Header <cstdlib> synopsisY 
17.2.3Null pointersY 
17.2.4Sizes, alignments, and offsetsY 
17.2.5byte type operationsY 
17.3Implementation properties  
17.3.1General  
17.3.2Header <version> synopsisY 
17.3.3Header <limits> synopsisY 
17.3.4Floating-point type properties  
17.3.4.1Type float_round_styleN 
17.3.4.2Type float_denorm_styleN 
17.3.5Class template numeric_limitsY 
17.3.6Header <climits> synopsisY 
17.3.7Header <cfloat> synopsisY 
17.4Integer types  
17.4.1General  
17.4.2Header <cstdint> synopsisY 
17.5Startup and terminationPartialC library dependency for quick_exit, at_quick_exit
17.6Dynamic memory managementY 
17.7Type identificationY 
17.8Source location  
17.8.1Header <source_location> synopsisY 
17.8.2Class source_locationY 
17.9Exception handlingY 
17.10Initializer listsY 
17.11Comparisons  
17.11.1Header <compare> synopsisY 
17.11.2Comparison category typesY 
17.11.3Class template common_comparison_categoryY 
17.11.4Concept three_way_comparableY 
17.11.5Result of three-way comparisonY 
17.11.6Comparison algorithmsY 
17.12Coroutines  
17.12.1General  
17.12.2Header <coroutine> synopsisY 
17.12.3Coroutine traitsY 
17.12.4Class template coroutine_handleY 
17.12.5No-op coroutinesY 
17.13Other runtime supportY 
+ 18 + + Concepts library +
18.1General  
18.2Equality preservation  
18.3Header <concepts> synopsisY 
18.4Language-related concepts  
18.4.1General  
18.4.2Concept same_asY 
18.4.3Concept derived_fromY 
18.4.4Concept convertible_toY 
18.4.5Concept common_reference_withY 
18.4.6Concept common_withY 
18.4.7Arithmetic concepts  
18.4.8Concept assignable_fromY 
18.4.9Concept swappableY 
18.4.10Concept destructibleY 
18.4.11Concept constructible_fromY 
18.4.12Concept default_initializableY 
18.4.13Concept move_constructibleY 
18.4.14Concept copy_constructibleY 
18.5Comparison concepts  
18.5.1General  
18.5.2Boolean testabilityY 
18.5.3Concept equality_comparableY 
18.5.4Concept totally_orderedY 
18.6Object conceptsY 
18.7Callable concepts  
18.7.1General  
18.7.2Concept invocableY 
18.7.3Concept regular_invocableY 
18.7.4Concept predicateY 
18.7.5Concept relationY 
18.7.6Concept equivalence_relationY 
18.7.7Concept strict_weak_orderY 
+ 19 + + Diagnostics library +
19.1General  
19.2Exception classesY 
19.3AssertionsY 
19.4Error numbersY 
19.5System error support  
19.5.1General  
19.5.2Header <system_error> synopsisY 
19.5.3Class error_categoryY 
19.5.4Class error_codeY 
19.5.5Class error_conditionY 
19.5.6Comparison operator functionsY 
19.5.7System error hash supportY 
19.5.8Class system_errorY 
+ 20 + + General utilities library +
20.1General  
20.2Utility components  
20.2.1Header <utility> synopsisY 
20.2.2swapY 
20.2.3exchangeY 
20.2.4Forward/move helpersY 
20.2.5Function template as_constY 
20.2.6Function template declvalY 
20.2.7Integer comparison functionsY 
20.3Compile-time integer sequencesY 
20.4PairsY 
20.5TuplesY 
20.6Optional objectsY 
20.7VariantsY 
20.8Storage for any typeY 
20.9BitsetsY 
20.10MemoryY 
20.11Smart pointers  
20.11.1Class template unique_ptrY 
20.11.2Class bad_weak_ptrY 
20.11.3Class template shared_ptrYUses code from boost::shared_ptr.
20.11.4Class template weak_ptrY 
20.11.5Class template owner_lessY 
20.11.6Class template enable_shared_from_thisY 
20.11.7Smart pointer hash supportY 
20.12Memory resources  
20.12.1Header <memory_resource> synopsisY 
20.12.2Class memory_resourceY 
20.12.3Class template polymorphic_allocatorY 
20.12.4Access to program-wide memory_resource objectsY 
20.12.5Pool resource classesY 
20.12.6Class monotonic_buffer_resourceY 
20.13Class template scoped_allocator_adaptorY 
20.14Function objects  
20.14.1General  
20.14.2Header <functional> synopsisY 
20.14.3Definitions  
20.14.4Requirements  
20.14.5Function template invokeY 
20.14.6Class template reference_wrapperY 
20.14.7Arithmetic operationsY 
20.14.8ComparisonsY 
20.14.9Concept-constrained comparisonsY 
20.14.10Logical operationsY 
20.14.11Bitwise operationsY 
20.14.12Class identityY 
20.14.13Function template not_fnY 
20.14.14Function template bind_frontY 
20.14.15Function object bindersY 
20.14.16Function template mem_fnY 
20.14.17Polymorphic function wrappers  
20.14.17.1General  
20.14.17.2Class bad_function_callY 
20.14.17.3Class template functionY 
20.14.18SearchersY 
20.15Metaprogramming and type traits  
20.15.1General  
20.15.2RequirementsY 
20.15.3Header <type_traits> synopsisY 
20.15.4Helper classesY 
20.15.5Unary type traitsY 
20.15.6Type property queriesY 
20.15.7Relationships between typesY 
20.15.8Transformations between typesY 
20.15.9Logical operator traitsY 
20.15.10Member relationshipsY 
20.15.11Constant evaluation contextY 
20.16Compile-time rational arithmeticY 
20.17Class type_indexY 
20.18Execution policiesY 
20.19Primitive numeric conversions  
20.19.1Header <charconv> synopsisY 
20.19.2Primitive numeric output conversionY + Floating-point types up to 64-bit are formatted using + Ryu. + Types with greater precision are formatted using the C library + (sprintf and conditionally + strfromf128). + For powerpc64le-unknown-linux-gnu __sprintfieee128 + must be provided by Glibc. +
20.19.3Primitive numeric input conversionY + Floating-point types up to 64-bit are parsed using + fast_float. + Types with greater precision are parsed using the C library + (strtold). + For powerpc64le-unknown-linux-gnu __strtoieee128 + must be provided by Glibc. +
20.20Formatting  
20.20.1Header <format> synopsisY 
20.20.2Format string  
20.20.2.1 In generalY 
20.20.2.2Standard format specifiersY 
20.20.3Error reportingY 
20.20.4Formatting functionsY 
20.20.5FormatterY 
20.20.5.1Formatter requirements  
20.20.5.2Formatter specializationsY 
20.20.5.3Class template basic_format_parse_contextY 
20.20.5.4Class template basic_format_contextY 
20.20.6Arguments  
20.20.6.1Class template basic_format_argY 
20.20.6.2Class template format-arg-storeY 
20.20.6.3Class template basic_format_argsY 
20.20.7Class format_errorY 
+ 21 + + Strings library +
21.1General  
21.2Character traitsY 
21.3String classesY 
21.4String view classesY 
21.5Null-terminated sequence utilitiesPartialC library dependency.
+ 22 + + Containers library +
22.1General  
22.2Container requirementsY 
22.3Sequence containersY 
22.4Associative containersY 
22.5Unordered associative containersY 
22.6Container adaptorsY 
22.7Views  
22.7.1General  
22.7.2Header <span> synopsisY 
22.7.3Class template spanY 
+ 23 + + Iterators library +
23.1General  
23.2Header <iterator> synopsisY 
23.3Iterator requirements  
23.3.1In generalY 
23.3.2Associated typesY 
23.3.3Customization pointsY 
23.3.4Iterator conceptsY 
23.3.5C++17 iterator requirementsY 
23.3.6Indirect callable requirementsY 
23.3.7Common algorithm requirementsY 
23.4Iterator primitives  
23.4.1General  
23.4.2Standard iterator tagsY 
23.4.3Iterator operationsY 
23.4.4Range iterator operationsY 
23.5Iterator adaptors  
23.5.1Reverse iteratorsY 
23.5.2Insert iteratorsY 
23.5.3Move iterators and sentinelsY 
23.5.4Common iteratorsY 
23.5.5Default sentinelY 
23.5.6Counted iteratorsY 
23.5.7 Unreachable sentinelY 
23.6 Stream iteratorsY 
23.6.1General  
23.6.2 Class template istream_iteratorY 
23.6.3Class template ostream_iteratorY 
23.6.4Class template istreambuf_iteratorY 
23.6.5Class template ostreambuf_iteratorY 
23.7Range accessY 
+ 24 + + Ranges library +
24.1General  
24.2Header <ranges> synopsisY 
24.3Range accessY 
24.4Range requirements  
24.4.1General  
24.4.2RangesY 
24.4.3Sized rangesY 
24.4.4ViewsY 
24.4.5Other range refinementsY 
24.5Range utilities  
24.5.1General  
24.5.2Helper conceptsY 
24.5.3View interfaceY 
24.5.4Sub-rangesY 
24.5.5Dangling iterator handlingY 
24.6Range factories  
24.6.1General  
24.6.2Empty viewY 
24.6.3Single viewY 
24.6.4Iota viewY 
24.6.5Istream viewY 
24.7Range adaptors  
24.7.1General  
24.7.2Range adaptor objectsY 
24.7.3Semiregular wrapperY 
24.7.4All viewY 
24.7.5Filter viewY 
24.7.6Transform viewY 
24.7.7Take viewY 
24.7.8Take while viewY 
24.7.9Drop viewY 
24.7.10Drop while viewY 
24.7.11Join viewY 
24.7.12Split viewY 
24.7.13Counted viewY 
24.7.14Common viewY 
24.7.15Reverse viewY 
24.7.16Elements viewY 
+ 25 + + Algorithms library +
25.1General  
25.2Algorithms requirementsY 
25.3Parallel algorithms Using PSTL
25.4Header <algorithm> synopsisY 
25.5Algorithm result typesY 
25.6Non-modifying sequence operations  
25.6.1All ofY 
25.6.2Any ofY 
25.6.3None ofY 
25.6.4For eachY 
25.6.5FindY 
25.6.6Find endY 
25.6.7Find firstY 
25.6.8Adjacent findY 
25.6.9CountY 
25.6.10MismatchY 
25.6.11EqualY 
25.6.12Is permutationY 
25.6.13SearchY 
25.7Mutating sequence operations  
25.7.1CopyY 
25.7.2MoveY 
25.7.3SwapY 
25.7.4TransformY 
25.7.5ReplaceY 
25.7.6FillY 
25.7.7GenerateY 
25.7.8RemoveY 
25.7.9UniqueY 
25.7.10ReverseY 
25.7.11RotateY 
25.7.12SampleY 
25.7.13ShuffleY 
25.7.14ShiftY 
25.8Sorting and related operations  
25.8.1GeneralY 
25.8.2SortingY 
25.8.3Nth elementY 
25.8.4Binary searchY 
25.8.5PartitionsY 
25.8.6MergeY 
25.8.7Set operations on sorted structuresY 
25.8.8Heap operationsY 
25.8.9Minimum and maximumY 
25.8.10Bounded valueY 
25.8.11Lexicographical comparisonY 
25.8.12Three-way comparison algorithmsY 
25.8.13Permutation generatorsY 
25.9Header <numeric> synopsisY 
25.10Generalized numeric operations  
25.10.1General  
25.10.2Definitions  
25.10.3AccumulateY 
25.10.4ReduceY 
25.10.5Inner productY 
25.10.6Transform reduceY 
25.10.7Partial sumY 
25.10.8Exclusive scanY 
25.10.9Inclusive scanY 
25.10.10Transform exclusive scanY 
25.10.11Transform inclusive scanY 
25.10.12Adjacent differenceY 
25.10.13IotaY 
25.10.14Greatest common divisorY 
25.10.15Least common multipleY 
25.10.16MidpointY 
25.11Specialized <memory> algorithms  
25.11.1General  
25.11.2Special memory conceptsY 
25.11.3uninitialized_default_constructY 
25.11.4uninitialized_value_constructY 
25.11.5uninitialized_copyY 
25.11.6uninitialized_moveY 
25.11.7uninitialized_fillY 
25.11.8construct_atY 
25.11.9destroyY 
25.12C library algorithmsY 
+ 26 + + Numerics library +
26.1General  
26.2Numeric type requirementsY 
26.3The floating-point environmentY 
26.4Complex numbersY 
26.5Bit manipulation  
26.5.1General  
26.5.2Header <bit> synopsisY 
26.5.3Function template bit_castY 
26.5.4Integral powers of 2Y 
26.5.5RotatingY 
26.5.6CountingY 
26.5.7EndianY 
26.6Random number generationY 
26.7Numeric arraysY 
26.8Mathematical functions for floating-point typesY 
26.9Numbers  
26.9.1Header <numbers> synopsisY 
26.9.2Mathematical constantsY 
+ 27 + + Time library +
27.1General  
27.2Header <chrono> synopsisY 
27.3Cpp17Clock requirementsY 
27.4Time-related traits  
27.4.1treat_as_floating_pointY 
27.4.2duration_valuesY 
27.4.3Specializations of common_typeY 
27.4.4Class template is_clockY 
27.5Class template duration  
27.5.1GeneralY 
27.5.2ConstructorsY 
27.5.3ObserverY 
27.5.4ArithmeticY 
27.5.5Special valuesY 
27.5.6Non-member arithmeticY 
27.5.7ComparisonsY 
27.5.8ConversionsY 
27.5.9Suffixes for duration literalsY 
27.5.10AlgorithmsY 
27.5.11I/OY 
27.6Class template time_pointY 
27.7Clocks  
27.7.1GeneralY 
27.7.2Class system_clockY 
27.7.3Class utc_clockY 
27.7.4Class tai_clockY 
27.7.5Class gps_clockY 
27.7.6Type file_clockY 
27.7.7Class steady_clockY 
27.7.8Class high_resolution_clockY 
27.7.9Local timeY 
27.7.10time_point conversionsY 
27.8The civil calendar  
27.8.1In general  
27.8.2Class last_specY 
27.8.3Class dayY 
27.8.4Class monthY 
27.8.5Class yearY 
27.8.6Class weekdayY 
27.8.7Class weekday_indexedY 
27.8.8Class weekday_lastY 
27.8.9Class month_dayY 
27.8.10Class month_day_lastY 
27.8.11Class month_weekdayY 
27.8.12Class month_weekday_lastY 
27.8.13Class year_monthY 
27.8.14Class year_month_dayY 
27.8.15Class year_month_day_lastY 
27.8.16Class year_month_weekdayY 
27.8.17Class year_month_weekday_lastY 
27.9Class template hh_mm_ssY 
27.1012/24 hours functionsY 
27.11Time zones  
27.11.1In general  
27.11.2Time zone databaseY 
27.11.3Exception classesY 
27.11.4Information classesY 
27.11.5Class time_zoneY 
27.11.6Class template zoned_traitsY 
27.11.7Class template zoned_timeY 
27.11.8Class leap_secondY 
27.11.9Class time_zone_linkY 
27.12FormattingY 
27.13ParsingY 
27.14Header <ctime> synopsisY 
+ 28 + + Localization library +
28.1General  
28.2Header <locale> synopsisY 
28.3Locales  
28.3.1Class localeY 
28.3.2locale globalsY 
28.3.3Convenience interfaces  
28.3.3.1Character classificationY 
28.3.3.2Character conversionsY 
28.4Standard locale categories  
28.4.1General  
28.4.2The ctype categoryY 
28.4.3The numeric categoryY 
28.4.4The numeric punctuation facetY 
28.4.5The collate categoryY 
28.4.6The time categoryY 
28.4.7The monetary categoryY 
28.4.8The message retrieval categoryY 
28.5C library localesY 
+ 29 + + Input/output library +
29.1 GeneralY 
29.2Iostreams requirements  
29.2.1Imbue limitationsY 
29.2.2Positioning type limitationsY 
29.2.3Thread safetyPartial 
29.3Forward declarationsY 
29.4Standard iostream objectsY 
29.5Iostreams base classesY 
29.6Stream buffersY 
29.7Formatting and manipulatorsY 
29.8String-based streamsY 
29.9File-based streamsY 
29.10Synchronized output streams  
29.10.1Header <syncstream> synopsisY 
29.10.2Class template basic_syncbufY 
29.10.3Class template basic_osyncstreamY 
29.11File systems  
29.11.1General  
29.11.2ConformanceY 
29.11.3RequirementsY 
29.11.4Header <filesystem> synopsisY 
29.11.5Error reportingY 
29.11.6Class pathY 
29.11.7Class filesystem_errorY 
29.11.8Enumerations  
29.11.8.1Enum path::formatY 
29.11.8.2Enum class file_typeY 
29.11.8.3Enum class copy_optionsY 
29.11.8.4Enum class permsY 
29.11.8.5Enum class perm_optionsY 
29.11.8.6Enum class directory_optionsY 
29.11.9Class file_statusY 
29.11.10Class directory_entryY 
29.11.11Class directory_iteratorY 
29.11.12Class recursive_directory_iteratorY 
29.11.13Filesystem operation functionsY 
29.12C library files  
29.12.1Header <cstdio> synopsisY 
29.12.2Header <cinttypes> synopsisY 
+ 30 + + Regular expressions library +
30.1GeneralY 
30.2RequirementsY 
30.3Header <regex> synopsisY 
30.4Namespace std::regex_constantsY 
30.5Class regex_errorY 
30.6Class template regex_traitsPartialtransform_primary is not correctly implemented
30.7Class template basic_regexY 
30.8Class template sub_matchY 
30.9Class template match_resultsY 
30.10Regular expression algorithmsY 
30.11Regular expression iteratorsY 
30.12Modified ECMAScript regular expression grammarY 
+ 31 + + Atomics library +
31.1GeneralY 
31.2Header <atomic> synopsisY 
31.3Type aliasesY 
31.4Order and consistencyY 
31.5Lock-free propertyY 
31.6Waiting and notifyingPartialWaiting and notifying is not supported for volatile objects.
31.7Class template atomic_ref  
31.7.1GeneralY 
31.7.2OperationsPartial + volatile-qualified overloads for wait, + notify_one, and notify_all are not provided. +
31.7.3Specializations for integral typesY 
31.7.4Specializations for floating-point typesY 
31.7.5Partial specialization for pointersY 
31.8Class template atomic  
31.8.1GeneralY 
31.8.2Operations on atomic typesPartialWaiting and notifying is not supported for volatile objects.
31.8.3Specializations for integersY 
31.8.4Specializations for floating-point typesY 
31.8.5Partial specialization for pointersY 
31.8.6Member operators common to integers and pointers to objectsY 
31.8.7Partial specializations for smart pointers  
31.8.7.1GeneralY 
31.8.7.2Partial specialization for shared_ptrY 
31.8.7.3Partial specialization for weak_ptrY 
31.9Non-member functionsY 
31.10Flag type and operationsY 
31.11FencesY 
+ 32 + + Threads library +
32.1GeneralY 
32.2RequirementsY 
32.3Stop tokens  
32.3.1IntroductionY 
32.3.2Header <stop_token> synopsisY 
32.3.3Class stop_tokenY 
32.3.4Class stop_sourceY 
32.3.5Class template stop_callbackY 
32.4Threads  
32.4.1General  
32.4.2Header <thread> synopsisY 
32.4.3Class threadPartialthread::id comparisons not well-defined
32.4.4Class jthreadY 
32.4.5Namespace this_threadY 
32.5Mutual exclusion  
32.5.1General  
32.5.2Header <mutex> synopsis  
32.5.3Header <shared_mutex> synopsis  
32.5.4Mutex requirements  
32.5.4.1In general  
32.5.4.2Mutex typesY 
32.5.4.3Timed mutex typesY 
32.5.4.4Shared mutex typesY 
32.5.4.5Shared timed mutex typesY 
32.5.5LocksY 
32.5.6Generic locking algorithmsY 
32.5.7Call once  
32.5.7.1Struct once_flagY 
32.5.7.2Function call_oncePartialException support is broken. + See PR + 66146. +
32.6Condition variablesY 
32.7SemaphoreY 
32.7.1General  
32.7.2Header <semaphore> synopsisY 
32.7.3Class template counting_semaphoreY 
32.8Coordination types  
32.8.1General  
32.8.2Latches  
32.8.2.1General  
32.8.2.2Header <latch> synopsisY 
32.8.2.3Class latchY 
32.8.3Barriers  
32.8.3.1General  
32.8.3.2Header <barrier> synopsisY 
32.8.3.3Class template barrierY 
32.9FuturesY 
+ Appendix D + + Compatibility features +
D.10C headers  
D.10.1GeneralY 
D.10.2Header <complex.h> synopsisY 
D.10.3Header <iso646.h> synopsisY 
D.10.4Header <stdalign.h> synopsisY 
D.10.5Header <stdbool.h> synopsisY 
D.10.6Header <tgmath.h> synopsisY 
D.10.7Other C headersY 
D.12Relational operatorsY 
D.13char* streamsY 
D.13.1Header <strstream> synopsisY 
D.13.2Class strstreambufY 
D.13.3Class istrstreamY 
D.13.4Class ostrstreamY 
D.13.5Class strstreamY 
D.14Deprecated type traitsY 
D.15TupleY 
D.16VariantY 
D.17Deprecated iterator class templateY 
D.18Deprecated move_iterator accessY 
D.19Deprecated shared_ptr atomic accessY 
D.20Deprecated basic_string capacityY 
D.21Deprecated standard code conversion facets  
D.21.1GeneralY 
D.21.2Header <codecvt> synopsisY 
D.21.3RequirementsY 
D.22Deprecated convenience conversion interfaces  
D.22.1GeneralY 
D.22.2Class template wstring_convertY 
D.22.3Class template wbuffer_convertY 
D.23Deprecated locale category facetsY 
D.24Deprecated filesystem path factory functionsY 
D.25Deprecated atomic operations  
D.25.1GeneralY 
D.25.2Volatile accessY 
D.25.3Non-member functionsY 
D.25.4Operations on atomic typesY 
D.25.5Flag type and operationsY 

Implementation Specific Behavior

For behaviour which is also specified by previous standards, see C++ 1998/2003 Implementation Specific Behavior, C++ 2011 Implementation Specific Behavior, and @@ -1840,7 +1934,7 @@ The "SD-6 Feature Test / Notes" column shows the corresponding macro or header f SD-6: Feature-testing recommendations for C++ (where applicable) or any notes about the implementation. -

Table 1.10. C++ 2023 Library Features

Library FeatureProposalStatusSD-6 Feature Test / Notes
+

Table 1.11. C++ 2023 Library Features

Library FeatureProposalStatusSD-6 Feature Test / Notes
Ranges and Views
Range constructor for std::string_view @@ -2320,7 +2414,7 @@ In this implementation the header names are prefixed by

This page describes the TR1 support in mainline GCC, not in any particular release. -

Table 1.11. C++ TR1 Implementation Status

SectionDescriptionStatusComments
2General Utilities
2.1Reference wrappers  
2.1.1Additions to header <functional> synopsisY 
2.1.2Class template reference_wrapper  
2.1.2.1reference_wrapper construct/copy/destroyY 
2.1.2.2reference_wrapper assignmentY 
2.1.2.3reference_wrapper accessY 
2.1.2.4reference_wrapper invocationY 
2.1.2.5reference_wrapper helper functionsY 
2.2Smart pointers  
2.2.1Additions to header <memory> synopsisY 
2.2.2Class bad_weak_ptrY 
2.2.3Class template shared_ptr  +

Table 1.12. C++ TR1 Implementation Status

SectionDescriptionStatusComments
2General Utilities
2.1Reference wrappers  
2.1.1Additions to header <functional> synopsisY 
2.1.2Class template reference_wrapper  
2.1.2.1reference_wrapper construct/copy/destroyY 
2.1.2.2reference_wrapper assignmentY 
2.1.2.3reference_wrapper accessY 
2.1.2.4reference_wrapper invocationY 
2.1.2.5reference_wrapper helper functionsY 
2.2Smart pointers  
2.2.1Additions to header <memory> synopsisY 
2.2.2Class bad_weak_ptrY 
2.2.3Class template shared_ptr 

Uses code from boost::shared_ptr. @@ -2341,7 +2435,7 @@ decimal floating-point arithmetic".

This page describes the TR 24733 support in mainline GCC, not in any particular release. -

Table 1.12. C++ TR 24733 Implementation Status

SectionDescriptionStatusComments
+

Table 1.13. C++ TR 24733 Implementation Status

SectionDescriptionStatusComments
0 Introduction @@ -2381,7 +2475,7 @@ non-strict modes (i.e. -std=gnu++NN modes) the hypergeometric functions and confluent hypergeometric functions from TR1 are also provided, defined in namespace __gnu_cxx. -

Table 1.13. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of +

Table 1.14. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of __STDCPP_WANT_MATH_SPEC_FUNCS__
8Mathematical special functionsY 
8.1Additions to header <cmath> synopsisY 
8.1.1associated Laguerre polynomialsY 
8.1.2associated Legendre functionsY 
8.1.3beta functionY 
8.1.4(complete) elliptic integral of the first kindY 
8.1.5(complete) elliptic integral of the second kindY 
8.1.6(complete) elliptic integral of the third kindY 
8.1.7regular modified cylindrical Bessel functionsY 
8.1.8cylindrical Bessel functions (of the first kind)Y 
8.1.9irregular modified cylindrical Bessel functionsY 
8.1.10cylindrical Neumann functionsY 
8.1.11(incomplete) elliptic integral of the first kindY 
8.1.12(incomplete) elliptic integral of the second kindY 
8.1.13(incomplete) elliptic integral of the third kindY 
8.1.14exponential integralY 
8.1.15Hermite polynomialsY 
8.1.16Laguerre polynomialsY 
8.1.17Legendre polynomialsY 
8.1.18Riemann zeta functionY 
8.1.19spherical Bessel functions (of the first kind)Y 
8.1.20spherical associated Legendre functionsY 
8.1.21spherical Neumann functionsY 
8.2Additions to header <math.h>Y 
8.3The header <ctgmath>PartialConflicts with C++ 2011 requirements.
8.4The header <tgmath.h>NConflicts with C++ 2011 requirements.

Implementation Specific Behavior

For behaviour which is specified by the 2011 standard, see C++ 2011 Implementation Specific Behavior. This section documents behaviour which diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index 9cee44fd438..ab44d726fb4 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -1453,6 +1453,4421 @@ time zones and UTC are supported since 13.1, and chrono::parse is supported since 14.1. + +The following status table is based on the table of contents of +ISO/IEC 14882:2020. +Some subclauses are not shown in the table where the content is unchanged +since C++17 and the implementation is complete. + + + +C++ 2020 Implementation Status + + + + + + + + + Section + Description + Status + Comments + + + + + + + + 17 + + + Language support library + + + + + 17.1 + General + + + + + + 17.2 + Common definitions + + + + + + 17.2.1 + Header <cstddef> synopsis + Y + + + + + 17.2.2 + Header <cstdlib> synopsis + Y + + + + + 17.2.3 + Null pointers + Y + + + + + 17.2.4 + Sizes, alignments, and offsets + Y + + + + + 17.2.5 + byte type operations + Y + + + + + 17.3 + Implementation properties + + + + + + 17.3.1 + General + + + + + + 17.3.2 + Header <version> synopsis + Y + + + + + 17.3.3 + Header <limits> synopsis + Y + + + + + 17.3.4 + Floating-point type properties + + + + + + + 17.3.4.1 + Type float_round_style + N + + + + + + 17.3.4.2 + Type float_denorm_style + N + + + + + 17.3.5 + Class template numeric_limits + Y + + + + + 17.3.6 + Header <climits> synopsis + Y + + + + + 17.3.7 + Header <cfloat> synopsis + Y + + + + + 17.4 + Integer types + + + + + + 17.4.1 + General + + + + + + 17.4.2 + Header <cstdint> synopsis + Y + + + + + + 17.5 + Startup and termination + Partial + C library dependency for quick_exit, at_quick_exit + + + + 17.6 + Dynamic memory management + Y + + + + 17.7 + Type identification + Y + + + + + 17.8 + Source location + + + + + + 17.8.1 + Header <source_location> synopsis + Y + + + + + 17.8.2 + Class source_location + Y + + + + + 17.9 + Exception handling + Y + + + + + 17.10 + Initializer lists + Y + + + + + 17.11 + Comparisons + + + + + + 17.11.1 + Header <compare> synopsis + Y + + + + + 17.11.2 + Comparison category types + Y + + + + + 17.11.3 + Class template common_comparison_category + Y + + + + + 17.11.4 + Concept three_way_comparable + Y + + + + + 17.11.5 + Result of three-way comparison + Y + + + + + 17.11.6 + Comparison algorithms + Y + + + + + 17.12 + Coroutines + + + + + + 17.12.1 + General + + + + + + 17.12.2 + Header <coroutine> synopsis + Y + + + + + 17.12.3 + Coroutine traits + Y + + + + + 17.12.4 + Class template coroutine_handle + Y + + + + + 17.12.5 + No-op coroutines + Y + + + + + 17.13 + Other runtime support + Y + + + + + + 18 + + + Concepts library + + + + + 18.1 + General + + + + + + 18.2 + Equality preservation + + + + + + 18.3 + Header <concepts> synopsis + Y + + + + + 18.4 + Language-related concepts + + + + + + 18.4.1 + General + + + + + + 18.4.2 + Concept same_as + Y + + + + + 18.4.3 + Concept derived_from + Y + + + + + 18.4.4 + Concept convertible_to + Y + + + + + 18.4.5 + Concept common_reference_with + Y + + + + + 18.4.6 + Concept common_with + Y + + + + + 18.4.7 + Arithmetic concepts + + + + + + 18.4.8 + Concept assignable_from + Y + + + + + 18.4.9 + Concept swappable + Y + + + + + 18.4.10 + Concept destructible + Y + + + + + 18.4.11 + Concept constructible_from + Y + + + + + 18.4.12 + Concept default_initializable + Y + + + + + 18.4.13 + Concept move_constructible + Y + + + + + 18.4.14 + Concept copy_constructible + Y + + + + + 18.5 + Comparison concepts + + + + + + 18.5.1 + General + + + + + + 18.5.2 + Boolean testability + Y + + + + + 18.5.3 + Concept equality_comparable + Y + + + + + 18.5.4 + Concept totally_ordered + Y + + + + + 18.6 + Object concepts + Y + + + + + 18.7 + Callable concepts + + + + + + 18.7.1 + General + + + + + + 18.7.2 + Concept invocable + Y + + + + + 18.7.3 + Concept regular_invocable + Y + + + + + 18.7.4 + Concept predicate + Y + + + + + 18.7.5 + Concept relation + Y + + + + + 18.7.6 + Concept equivalence_relation + Y + + + + + 18.7.7 + Concept strict_weak_order + Y + + + + + + 19 + + + Diagnostics library + + + + + 19.1 + General + + + + + + 19.2 + Exception classes + Y + + + + + 19.3 + Assertions + Y + + + + + 19.4 + Error numbers + Y + + + + + 19.5 + System error support + + + + + + 19.5.1 + General + + + + + + 19.5.2 + Header <system_error> synopsis + Y + + + + + 19.5.3 + Class error_category + Y + + + + + 19.5.4 + Class error_code + Y + + + + + 19.5.5 + Class error_condition + Y + + + + + 19.5.6 + Comparison operator functions + Y + + + + + 19.5.7 + System error hash support + Y + + + + + 19.5.8 + Class system_error + Y + + + + + + 20 + + + General utilities library + + + + + 20.1 + General + + + + + + 20.2 + Utility components + + + + + + 20.2.1 + Header <utility> synopsis + Y + + + + + 20.2.2 + swap + Y + + + + + 20.2.3 + exchange + Y + + + + + 20.2.4 + Forward/move helpers + Y + + + + + 20.2.5 + Function template as_const + Y + + + + + 20.2.6 + Function template declval + Y + + + + + 20.2.7 + Integer comparison functions + Y + + + + + 20.3 + Compile-time integer sequences + Y + + + + + 20.4 + Pairs + Y + + + + + 20.5 + Tuples + Y + + + + + 20.6 + Optional objects + Y + + + + + 20.7 + Variants + Y + + + + + 20.8 + Storage for any type + Y + + + + + 20.9 + Bitsets + Y + + + + + 20.10 + Memory + Y + + + + + 20.11 + Smart pointers + + + + + + 20.11.1 + Class template unique_ptr + Y + + + + + 20.11.2 + Class bad_weak_ptr + Y + + + + + 20.11.3 + Class template shared_ptr + Y + Uses code from boost::shared_ptr. + + + + 20.11.4 + Class template weak_ptr + Y + + + + + 20.11.5 + Class template owner_less + Y + + + + + 20.11.6 + Class template enable_shared_from_this + Y + + + + + 20.11.7 + Smart pointer hash support + Y + + + + + 20.12 + Memory resources + + + + + + 20.12.1 + Header <memory_resource> synopsis + Y + + + + + 20.12.2 + Class memory_resource + Y + + + + + 20.12.3 + Class template polymorphic_allocator + Y + + + + + 20.12.4 + Access to program-wide memory_resource objects + Y + + + + + 20.12.5 + Pool resource classes + Y + + + + + 20.12.6 + Class monotonic_buffer_resource + Y + + + + + 20.13 + Class template scoped_allocator_adaptor + Y + + + + + 20.14 + Function objects + + + + + + 20.14.1 + General + + + + + + 20.14.2 + Header <functional> synopsis + Y + + + + + 20.14.3 + Definitions + + + + + + 20.14.4 + Requirements + + + + + + 20.14.5 + Function template invoke + Y + + + + + 20.14.6 + Class template reference_wrapper + Y + + + + + 20.14.7 + Arithmetic operations + Y + + + + + 20.14.8 + Comparisons + Y + + + + + 20.14.9 + Concept-constrained comparisons + Y + + + + + 20.14.10 + Logical operations + Y + + + + + 20.14.11 + Bitwise operations + Y + + + + + 20.14.12 + Class identity + Y + + + + + 20.14.13 + Function template not_fn + Y + + + + + 20.14.14 + Function template bind_front + Y + + + + + 20.14.15 + Function object binders + Y + + + + + 20.14.16 + Function template mem_fn + Y + + + + + 20.14.17 + Polymorphic function wrappers + + + + + + 20.14.17.1 + General + + + + + + 20.14.17.2 + Class bad_function_call + Y + + + + + 20.14.17.3 + Class template function + Y + + + + + 20.14.18 + Searchers + Y + + + + + 20.15 + Metaprogramming and type traits + + + + + + 20.15.1 + General + + + + + + 20.15.2 + Requirements + Y + + + + + 20.15.3 + Header <type_traits> synopsis + Y + + + + + 20.15.4 + Helper classes + Y + + + + + 20.15.5 + Unary type traits + Y + + + + + 20.15.6 + Type property queries + Y + + + + + 20.15.7 + Relationships between types + Y + + + + + 20.15.8 + Transformations between types + Y + + + + + 20.15.9 + Logical operator traits + Y + + + + + 20.15.10 + Member relationships + Y + + + + + 20.15.11 + Constant evaluation context + Y + + + + + 20.16 + Compile-time rational arithmetic + Y + + + + + 20.17 + Class type_index + Y + + + + + 20.18 + Execution policies + Y + + + + + 20.19 + Primitive numeric conversions + + + + + + 20.19.1 + Header <charconv> synopsis + Y + + + + + 20.19.2 + Primitive numeric output conversion + Y + + Floating-point types up to 64-bit are formatted using + Ryu. + Types with greater precision are formatted using the C library + (sprintf and conditionally + strfromf128). + For powerpc64le-unknown-linux-gnu __sprintfieee128 + must be provided by Glibc. + + + + + 20.19.3 + Primitive numeric input conversion + Y + + Floating-point types up to 64-bit are parsed using + fast_float. + Types with greater precision are parsed using the C library + (strtold). + For powerpc64le-unknown-linux-gnu __strtoieee128 + must be provided by Glibc. + + + + + 20.20 + Formatting + + + + + + 20.20.1 + Header <format> synopsis + Y + + + + + 20.20.2 + Format string + + + + + + 20.20.2.1 + In general + Y + + + + + 20.20.2.2 + Standard format specifiers + Y + + + + + 20.20.3 + Error reporting + Y + + + + + 20.20.4 + Formatting functions + Y + + + + + 20.20.5 + Formatter + Y + + + + + 20.20.5.1 + Formatter requirements + + + + + + 20.20.5.2 + Formatter specializations + Y + + + + + 20.20.5.3 + Class template basic_format_parse_context + Y + + + + + 20.20.5.4 + Class template basic_format_context + Y + + + + + 20.20.6 + Arguments + + + + + + 20.20.6.1 + Class template basic_format_arg + Y + + + + + 20.20.6.2 + Class template format-arg-store + Y + + + + + 20.20.6.3 + Class template basic_format_args + Y + + + + + 20.20.7 + Class format_error + Y + + + + + + 21 + + + Strings library + + + + + 21.1 + General + + + + + + 21.2 + Character traits + Y + + + + + 21.3 + String classes + Y + + + + + 21.4 + String view classes + Y + + + + + + 21.5 + Null-terminated sequence utilities + Partial + C library dependency. + + + + + 22 + + + Containers library + + + + + 22.1 + General + + + + + + 22.2 + Container requirements + Y + + + + + 22.3 + Sequence containers + Y + + + + + 22.4 + Associative containers + Y + + + + + 22.5 + Unordered associative containers + Y + + + + + 22.6 + Container adaptors + Y + + + + + 22.7 + Views + + + + + + 22.7.1 + General + + + + + + 22.7.2 + Header <span> synopsis + Y + + + + + 22.7.3 + Class template span + Y + + + + + + 23 + + + Iterators library + + + + + 23.1 + General + + + + + + 23.2 + Header <iterator> synopsis + Y + + + + + 23.3 + Iterator requirements + + + + + + 23.3.1 + In general + Y + + + + + 23.3.2 + Associated types + Y + + + + + 23.3.3 + Customization points + Y + + + + + 23.3.4 + Iterator concepts + Y + + + + + 23.3.5 + C++17 iterator requirements + Y + + + + + 23.3.6 + Indirect callable requirements + Y + + + + + 23.3.7 + Common algorithm requirements + Y + + + + + 23.4 + Iterator primitives + + + + + + 23.4.1 + General + + + + + + 23.4.2 + Standard iterator tags + Y + + + + + 23.4.3 + Iterator operations + Y + + + + + 23.4.4 + Range iterator operations + Y + + + + + 23.5 + Iterator adaptors + + + + + + 23.5.1 + Reverse iterators + Y + + + + + 23.5.2 + Insert iterators + Y + + + + + 23.5.3 + Move iterators and sentinels + Y + + + + + 23.5.4 + Common iterators + Y + + + + + 23.5.5 + Default sentinel + Y + + + + + 23.5.6 + Counted iterators + Y + + + + + 23.5.7 + Unreachable sentinel + Y + + + + + 23.6 + Stream iterators + Y + + + + + 23.6.1 + General + + + + + + 23.6.2 + Class template istream_iterator + Y + + + + + 23.6.3 + Class template ostream_iterator + Y + + + + + 23.6.4 + Class template istreambuf_iterator + Y + + + + + 23.6.5 + Class template ostreambuf_iterator + Y + + + + + 23.7 + Range access + Y + + + + + + 24 + + + Ranges library + + + + + 24.1 + General + + + + + + 24.2 + Header <ranges> synopsis + Y + + + + + 24.3 + Range access + Y + + + + + 24.4 + Range requirements + + + + + + 24.4.1 + General + + + + + + 24.4.2 + Ranges + Y + + + + + 24.4.3 + Sized ranges + Y + + + + + 24.4.4 + Views + Y + + + + + 24.4.5 + Other range refinements + Y + + + + + 24.5 + Range utilities + + + + + + 24.5.1 + General + + + + + + 24.5.2 + Helper concepts + Y + + + + + 24.5.3 + View interface + Y + + + + + 24.5.4 + Sub-ranges + Y + + + + + 24.5.5 + Dangling iterator handling + Y + + + + + 24.6 + Range factories + + + + + + 24.6.1 + General + + + + + + 24.6.2 + Empty view + Y + + + + + 24.6.3 + Single view + Y + + + + + 24.6.4 + Iota view + Y + + + + + 24.6.5 + Istream view + Y + + + + + 24.7 + Range adaptors + + + + + + 24.7.1 + General + + + + + + 24.7.2 + Range adaptor objects + Y + + + + + 24.7.3 + Semiregular wrapper + Y + + + + + 24.7.4 + All view + Y + + + + + 24.7.5 + Filter view + Y + + + + + 24.7.6 + Transform view + Y + + + + + 24.7.7 + Take view + Y + + + + + 24.7.8 + Take while view + Y + + + + + 24.7.9 + Drop view + Y + + + + + 24.7.10 + Drop while view + Y + + + + + 24.7.11 + Join view + Y + + + + + 24.7.12 + Split view + Y + + + + + 24.7.13 + Counted view + Y + + + + + 24.7.14 + Common view + Y + + + + + 24.7.15 + Reverse view + Y + + + + + 24.7.16 + Elements view + Y + + + + + + 25 + + + Algorithms library + + + + + 25.1 + General + + + + + + 25.2 + Algorithms requirements + Y + + + + + 25.3 + Parallel algorithms + + Using PSTL + + + + 25.4 + Header <algorithm> synopsis + Y + + + + + 25.5 + Algorithm result types + Y + + + + + 25.6 + Non-modifying sequence operations + + + + + + 25.6.1 + All of + Y + + + + + 25.6.2 + Any of + Y + + + + + 25.6.3 + None of + Y + + + + + 25.6.4 + For each + Y + + + + + 25.6.5 + Find + Y + + + + + 25.6.6 + Find end + Y + + + + + 25.6.7 + Find first + Y + + + + + 25.6.8 + Adjacent find + Y + + + + + 25.6.9 + Count + Y + + + + + 25.6.10 + Mismatch + Y + + + + + 25.6.11 + Equal + Y + + + + + 25.6.12 + Is permutation + Y + + + + + 25.6.13 + Search + Y + + + + + 25.7 + Mutating sequence operations + + + + + + 25.7.1 + Copy + Y + + + + + 25.7.2 + Move + Y + + + + + 25.7.3 + Swap + Y + + + + + 25.7.4 + Transform + Y + + + + + 25.7.5 + Replace + Y + + + + + 25.7.6 + Fill + Y + + + + + 25.7.7 + Generate + Y + + + + + 25.7.8 + Remove + Y + + + + + 25.7.9 + Unique + Y + + + + + 25.7.10 + Reverse + Y + + + + + 25.7.11 + Rotate + Y + + + + + 25.7.12 + Sample + Y + + + + + 25.7.13 + Shuffle + Y + + + + + 25.7.14 + Shift + Y + + + + + 25.8 + Sorting and related operations + + + + + + 25.8.1 + General + Y + + + + + 25.8.2 + Sorting + Y + + + + + 25.8.3 + Nth element + Y + + + + + 25.8.4 + Binary search + Y + + + + + 25.8.5 + Partitions + Y + + + + + 25.8.6 + Merge + Y + + + + + 25.8.7 + Set operations on sorted structures + Y + + + + + 25.8.8 + Heap operations + Y + + + + + 25.8.9 + Minimum and maximum + Y + + + + + 25.8.10 + Bounded value + Y + + + + + 25.8.11 + Lexicographical comparison + Y + + + + + 25.8.12 + Three-way comparison algorithms + Y + + + + + 25.8.13 + Permutation generators + Y + + + + + 25.9 + Header <numeric> synopsis + Y + + + + + 25.10 + Generalized numeric operations + + + + + + 25.10.1 + General + + + + + + 25.10.2 + Definitions + + + + + + 25.10.3 + Accumulate + Y + + + + + 25.10.4 + Reduce + Y + + + + + 25.10.5 + Inner product + Y + + + + + 25.10.6 + Transform reduce + Y + + + + + 25.10.7 + Partial sum + Y + + + + + 25.10.8 + Exclusive scan + Y + + + + + 25.10.9 + Inclusive scan + Y + + + + + 25.10.10 + Transform exclusive scan + Y + + + + + 25.10.11 + Transform inclusive scan + Y + + + + + 25.10.12 + Adjacent difference + Y + + + + + 25.10.13 + Iota + Y + + + + + 25.10.14 + Greatest common divisor + Y + + + + + 25.10.15 + Least common multiple + Y + + + + + 25.10.16 + Midpoint + Y + + + + + 25.11 + Specialized <memory> algorithms + + + + + + 25.11.1 + General + + + + + + 25.11.2 + Special memory concepts + Y + + + + + 25.11.3 + uninitialized_default_construct + Y + + + + + 25.11.4 + uninitialized_value_construct + Y + + + + + 25.11.5 + uninitialized_copy + Y + + + + + 25.11.6 + uninitialized_move + Y + + + + + 25.11.7 + uninitialized_fill + Y + + + + + 25.11.8 + construct_at + Y + + + + + 25.11.9 + destroy + Y + + + + + 25.12 + C library algorithms + Y + + + + + + 26 + + + Numerics library + + + + + + 26.1 + General + + + + + + 26.2 + Numeric type requirements + Y + + + + + 26.3 + The floating-point environment + Y + + + + + 26.4 + Complex numbers + Y + + + + + 26.5 + Bit manipulation + + + + + + 26.5.1 + General + + + + + + 26.5.2 + Header <bit> synopsis + Y + + + + + 26.5.3 + Function template bit_cast + Y + + + + + 26.5.4 + Integral powers of 2 + Y + + + + + 26.5.5 + Rotating + Y + + + + + 26.5.6 + Counting + Y + + + + + 26.5.7 + Endian + Y + + + + + 26.6 + Random number generation + Y + + + + + 26.7 + Numeric arrays + Y + + + + + 26.8 + Mathematical functions for floating-point types + Y + + + + + 26.9 + Numbers + + + + + + 26.9.1 + Header <numbers> synopsis + Y + + + + + 26.9.2 + Mathematical constants + Y + + + + + + 27 + + + Time library + + + + + 27.1 + General + + + + + + 27.2 + Header <chrono> synopsis + Y + + + + + 27.3 + Cpp17Clock requirements + Y + + + + + 27.4 + Time-related traits + + + + + + 27.4.1 + treat_as_floating_point + Y + + + + + 27.4.2 + duration_values + Y + + + + + 27.4.3 + Specializations of common_type + Y + + + + + 27.4.4 + Class template is_clock + Y + + + + + 27.5 + Class template duration + + + + + + 27.5.1 + General + Y + + + + + 27.5.2 + Constructors + Y + + + + + 27.5.3 + Observer + Y + + + + + 27.5.4 + Arithmetic + Y + + + + + 27.5.5 + Special values + Y + + + + + 27.5.6 + Non-member arithmetic + Y + + + + + 27.5.7 + Comparisons + Y + + + + + 27.5.8 + Conversions + Y + + + + + 27.5.9 + Suffixes for duration literals + Y + + + + + 27.5.10 + Algorithms + Y + + + + + 27.5.11 + I/O + Y + + + + + 27.6 + Class template time_point + Y + + + + + 27.7 + Clocks + + + + + + 27.7.1 + General + Y + + + + + 27.7.2 + Class system_clock + Y + + + + + 27.7.3 + Class utc_clock + Y + + + + + 27.7.4 + Class tai_clock + Y + + + + + 27.7.5 + Class gps_clock + Y + + + + + 27.7.6 + Type file_clock + Y + + + + + 27.7.7 + Class steady_clock + Y + + + + + 27.7.8 + Class high_resolution_clock + Y + + + + + 27.7.9 + Local time + Y + + + + + 27.7.10 + time_point conversions + Y + + + + + 27.8 + The civil calendar + + + + + + 27.8.1 + In general + + + + + + 27.8.2 + Class last_spec + Y + + + + + 27.8.3 + Class day + Y + + + + + 27.8.4 + Class month + Y + + + + + 27.8.5 + Class year + Y + + + + + 27.8.6 + Class weekday + Y + + + + + 27.8.7 + Class weekday_indexed + Y + + + + + 27.8.8 + Class weekday_last + Y + + + + + 27.8.9 + Class month_day + Y + + + + + 27.8.10 + Class month_day_last + Y + + + + + 27.8.11 + Class month_weekday + Y + + + + + 27.8.12 + Class month_weekday_last + Y + + + + + 27.8.13 + Class year_month + Y + + + + + 27.8.14 + Class year_month_day + Y + + + + + 27.8.15 + Class year_month_day_last + Y + + + + + 27.8.16 + Class year_month_weekday + Y + + + + + 27.8.17 + Class year_month_weekday_last + Y + + + + + 27.9 + Class template hh_mm_ss + Y + + + + + 27.10 + 12/24 hours functions + Y + + + + + 27.11 + Time zones + + + + + + 27.11.1 + In general + + + + + + 27.11.2 + Time zone database + Y + + + + + 27.11.3 + Exception classes + Y + + + + + 27.11.4 + Information classes + Y + + + + + 27.11.5 + Class time_zone + Y + + + + + 27.11.6 + Class template zoned_traits + Y + + + + + 27.11.7 + Class template zoned_time + Y + + + + + 27.11.8 + Class leap_second + Y + + + + + 27.11.9 + Class time_zone_link + Y + + + + + 27.12 + Formatting + Y + + + + + 27.13 + Parsing + Y + + + + + 27.14 + Header <ctime> synopsis + Y + + + + + + 28 + + + Localization library + + + + + 28.1 + General + + + + + + 28.2 + Header <locale> synopsis + Y + + + + + 28.3 + Locales + + + + + + 28.3.1 + Class locale + Y + + + + + 28.3.2 + locale globals + Y + + + + + 28.3.3 + Convenience interfaces + + + + + + 28.3.3.1 + Character classification + Y + + + + + 28.3.3.2 + Character conversions + Y + + + + + 28.4 + Standard locale categories + + + + + + 28.4.1 + General + + + + + + 28.4.2 + The ctype category + Y + + + + + 28.4.3 + The numeric category + Y + + + + + 28.4.4 + The numeric punctuation facet + Y + + + + + 28.4.5 + The collate category + Y + + + + + 28.4.6 + The time category + Y + + + + + 28.4.7 + The monetary category + Y + + + + + 28.4.8 + The message retrieval category + Y + + + + + 28.5 + C library locales + Y + + + + + + 29 + + + Input/output library + + + + + + + 29.1 + General + Y + + + + + 29.2 + Iostreams requirements + + + + + + 29.2.1 + Imbue limitations + Y + + + + + 29.2.2 + Positioning type limitations + Y + + + + + + 29.2.3 + Thread safety + Partial + + + + + 29.3 + Forward declarations + Y + + + + + 29.4 + Standard iostream objects + Y + + + + + 29.5 + Iostreams base classes + Y + + + + + 29.6 + Stream buffers + Y + + + + + 29.7 + Formatting and manipulators + Y + + + + + 29.8 + String-based streams + Y + + + + + 29.9 + File-based streams + Y + + + + + 29.10 + Synchronized output streams + + + + + + 29.10.1 + Header <syncstream> synopsis + Y + + + + + 29.10.2 + Class template basic_syncbuf + Y + + + + + 29.10.3 + Class template basic_osyncstream + Y + + + + + 29.11 + File systems + + + + + + 29.11.1 + General + + + + + + 29.11.2 + Conformance + Y + + + + + 29.11.3 + Requirements + Y + + + + + 29.11.4 + Header <filesystem> synopsis + Y + + + + + 29.11.5 + Error reporting + Y + + + + + 29.11.6 + Class path + Y + + + + + 29.11.7 + Class filesystem_error + Y + + + + + 29.11.8 + Enumerations + + + + + + 29.11.8.1 + Enum path::format + Y + + + + + 29.11.8.2 + Enum class file_type + Y + + + + + 29.11.8.3 + Enum class copy_options + Y + + + + + 29.11.8.4 + Enum class perms + Y + + + + + 29.11.8.5 + Enum class perm_options + Y + + + + + 29.11.8.6 + Enum class directory_options + Y + + + + + 29.11.9 + Class file_status + Y + + + + + 29.11.10 + Class directory_entry + Y + + + + + 29.11.11 + Class directory_iterator + Y + + + + + 29.11.12 + Class recursive_directory_iterator + Y + + + + + 29.11.13 + Filesystem operation functions + Y + + + + + 29.12 + C library files + + + + + + 29.12.1 + Header <cstdio> synopsis + Y + + + + + 29.12.2 + Header <cinttypes> synopsis + Y + + + + + + 30 + + + Regular expressions library + + + + + + 30.1 + General + Y + + + + + 30.2 + Requirements + Y + + + + + 30.3 + Header <regex> synopsis + Y + + + + + 30.4 + Namespace std::regex_constants + Y + + + + + 30.5 + Class regex_error + Y + + + + + + 30.6 + Class template regex_traits + Partial + transform_primary is not correctly implemented + + + + 30.7 + Class template basic_regex + Y + + + + + 30.8 + Class template sub_match + Y + + + + + 30.9 + Class template match_results + Y + + + + + 30.10 + Regular expression algorithms + Y + + + + + 30.11 + Regular expression iterators + Y + + + + + 30.12 + Modified ECMAScript regular expression grammar + Y + + + + + + 31 + + + Atomics library + + + + + + 31.1 + General + Y + + + + + 31.2 + Header <atomic> synopsis + Y + + + + + 31.3 + Type aliases + Y + + + + + 31.4 + Order and consistency + Y + + + + + 31.5 + Lock-free property + Y + + + + + + 31.6 + Waiting and notifying + Partial + Waiting and notifying is not supported for volatile objects. + + + + 31.7 + Class template atomic_ref + + + + + + 31.7.1 + General + Y + + + + + + 31.7.2 + Operations + Partial + + volatile-qualified overloads for wait, + notify_one, and notify_all are not provided. + + + + + 31.7.3 + Specializations for integral types + Y + + + + + 31.7.4 + Specializations for floating-point types + Y + + + + + 31.7.5 + Partial specialization for pointers + Y + + + + + 31.8 + Class template atomic + + + + + + 31.8.1 + General + Y + + + + + + 31.8.2 + Operations on atomic types + Partial + Waiting and notifying is not supported for volatile objects. + + + + 31.8.3 + Specializations for integers + Y + + + + + 31.8.4 + Specializations for floating-point types + Y + + + + + 31.8.5 + Partial specialization for pointers + Y + + + + + 31.8.6 + Member operators common to integers and pointers to objects + Y + + + + + 31.8.7 + Partial specializations for smart pointers + + + + + + 31.8.7.1 + General + Y + + + + + 31.8.7.2 + Partial specialization for shared_ptr + Y + + + + + 31.8.7.3 + Partial specialization for weak_ptr + Y + + + + + 31.9 + Non-member functions + Y + + + + + 31.10 + Flag type and operations + Y + + + + + 31.11 + Fences + Y + + + + + + 32 + + + Threads library + + + + + 32.1 + General + Y + + + + + 32.2 + Requirements + Y + + + + + 32.3 + Stop tokens + + + + + + 32.3.1 + Introduction + Y + + + + + 32.3.2 + Header <stop_token> synopsis + Y + + + + + 32.3.3 + Class stop_token + Y + + + + + 32.3.4 + Class stop_source + Y + + + + + 32.3.5 + Class template stop_callback + Y + + + + + 32.4 + Threads + + + + + + 32.4.1 + General + + + + + + 32.4.2 + Header <thread> synopsis + Y + + + + + + 32.4.3 + Class thread + Partial + thread::id comparisons not well-defined + + + + 32.4.4 + Class jthread + Y + + + + + 32.4.5 + Namespace this_thread + Y + + + + + 32.5 + Mutual exclusion + + + + + + 32.5.1 + General + + + + + + 32.5.2 + Header <mutex> synopsis + + + + + + 32.5.3 + Header <shared_mutex> synopsis + + + + + + 32.5.4 + Mutex requirements + + + + + + 32.5.4.1 + In general + + + + + + 32.5.4.2 + Mutex types + Y + + + + + 32.5.4.3 + Timed mutex types + Y + + + + + 32.5.4.4 + Shared mutex types + Y + + + + + 32.5.4.5 + Shared timed mutex types + Y + + + + + 32.5.5 + Locks + Y + + + + + 32.5.6 + Generic locking algorithms + Y + + + + + 32.5.7 + Call once + + + + + + 32.5.7.1 + Struct once_flag + Y + + + + + + 32.5.7.2 + Function call_once + Partial + Exception support is broken. + See PR + 66146. + + + + + 32.6 + Condition variables + Y + + + + + 32.7 + Semaphore + Y + + + + + 32.7.1 + General + + + + + + 32.7.2 + Header <semaphore> synopsis + Y + + + + + 32.7.3 + Class template counting_semaphore + Y + + + + + 32.8 + Coordination types + + + + + + 32.8.1 + General + + + + + + 32.8.2 + Latches + + + + + + 32.8.2.1 + General + + + + + + 32.8.2.2 + Header <latch> synopsis + Y + + + + + 32.8.2.3 + Class latch + Y + + + + + 32.8.3 + Barriers + + + + + + 32.8.3.1 + General + + + + + + 32.8.3.2 + Header <barrier> synopsis + Y + + + + + 32.8.3.3 + Class template barrier + Y + + + + + 32.9 + Futures + Y + + + + + + Appendix D + + + Compatibility features + + + + + D.10 + C headers + + + + + + D.10.1 + General + Y + + + + + D.10.2 + Header <complex.h> synopsis + Y + + + + + D.10.3 + Header <iso646.h> synopsis + Y + + + + + D.10.4 + Header <stdalign.h> synopsis + Y + + + + + D.10.5 + Header <stdbool.h> synopsis + Y + + + + + D.10.6 + Header <tgmath.h> synopsis + Y + + + + + D.10.7 + Other C headers + Y + + + + + D.12 + Relational operators + Y + + + + + D.13 + char* streams + Y + + + + + D.13.1 + Header <strstream> synopsis + Y + + + + + D.13.2 + Class strstreambuf + Y + + + + + D.13.3 + Class istrstream + Y + + + + + D.13.4 + Class ostrstream + Y + + + + + D.13.5 + Class strstream + Y + + + + + D.14 + Deprecated type traits + Y + + + + + D.15 + Tuple + Y + + + + + D.16 + Variant + Y + + + + + D.17 + Deprecated iterator class template + Y + + + + + D.18 + Deprecated move_iterator access + Y + + + + + D.19 + Deprecated shared_ptr atomic access + Y + + + + + D.20 + Deprecated basic_string capacity + Y + + + + + D.21 + Deprecated standard code conversion facets + + + + + + D.21.1 + General + Y + + + + + D.21.2 + Header <codecvt> synopsis + Y + + + + + D.21.3 + Requirements + Y + + + + + D.22 + Deprecated convenience conversion interfaces + + + + + + D.22.1 + General + Y + + + + + D.22.2 + Class template wstring_convert + Y + + + + + D.22.3 + Class template wbuffer_convert + Y + + + + + D.23 + Deprecated locale category facets + Y + + + + + D.24 + Deprecated filesystem path factory functions + Y + + + + + D.25 + Deprecated atomic operations + + + + + + D.25.1 + General + Y + + + + + D.25.2 + Volatile access + Y + + + + + D.25.3 + Non-member functions + Y + + + + + D.25.4 + Operations on atomic types + Y + + + + + D.25.5 + Flag type and operations + Y + + + + + +
+

Implementation Specific Behavior For behaviour which is also specified by previous standards,