From 9a5cb1b3725e2c89f0dca00a76fdcc3772c2a400 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 22 Apr 2020 08:09:11 +0100 Subject: [PATCH] libstdc++: Improve C++14 status docs This adds a full table of contents for the C++14 standard, with status for each part. The list of C++14 proposals is removed, as it adds little value now that everything is supported. * doc/Makefile.am (xml_sources_manual): Add missing XML files. * doc/Makefile.in: Regenerate. * doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead of "this page". * doc/xml/manual/status_cxx2011.xml: Formatting and other corrections to the C++11 status table. * doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature proposals with table matching contents of the C++14 standard. * doc/html/*: Regenerate. --- libstdc++-v3/ChangeLog | 10 + libstdc++-v3/doc/Makefile.am | 2 + libstdc++-v3/doc/Makefile.in | 2 + libstdc++-v3/doc/html/manual/status.html | 169 +- .../doc/xml/manual/status_cxx1998.xml | 2 +- .../doc/xml/manual/status_cxx2011.xml | 59 +- .../doc/xml/manual/status_cxx2014.xml | 1570 +++++++++++++++-- 7 files changed, 1567 insertions(+), 247 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4b5abe18b8d1..616b154e866c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,15 @@ 2020-04-22 Jonathan Wakely + * doc/Makefile.am (xml_sources_manual): Add missing XML files. + * doc/Makefile.in: Regenerate. + * doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead + of "this page". + * doc/xml/manual/status_cxx2011.xml: Formatting and other corrections + to the C++11 status table. + * doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature + proposals with table matching contents of the C++14 standard. + * doc/html/*: Regenerate. + Backport from mainline 2020-02-15 Jonathan Wakely diff --git a/libstdc++-v3/doc/Makefile.am b/libstdc++-v3/doc/Makefile.am index 4427e5da6adf..bd88bdaa8c57 100644 --- a/libstdc++-v3/doc/Makefile.am +++ b/libstdc++-v3/doc/Makefile.am @@ -342,6 +342,8 @@ xml_sources_manual = \ ${xml_dir}/manual/status_cxx1998.xml \ ${xml_dir}/manual/status_cxx2011.xml \ ${xml_dir}/manual/status_cxx2014.xml \ + ${xml_dir}/manual/status_cxx2017.xml \ + ${xml_dir}/manual/status_cxx2020.xml \ ${xml_dir}/manual/status_cxxtr1.xml \ ${xml_dir}/manual/status_cxxtr24733.xml \ ${xml_dir}/manual/strings.xml \ diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index 1058d5c3cc8b..9bde10268041 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -483,6 +483,8 @@ xml_sources_manual = \ ${xml_dir}/manual/status_cxx1998.xml \ ${xml_dir}/manual/status_cxx2011.xml \ ${xml_dir}/manual/status_cxx2014.xml \ + ${xml_dir}/manual/status_cxx2017.xml \ + ${xml_dir}/manual/status_cxx2020.xml \ ${xml_dir}/manual/status_cxxtr1.xml \ ${xml_dir}/manual/status_cxxtr24733.xml \ ${xml_dir}/manual/strings.xml \ diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 9f8c2810a38a..26793d9fa83b 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -5,7 +5,7 @@  Next

Chapter 1. Status

Implementation Status

C++ 1998/2003

Implementation Status

This status table is based on the table of contents of ISO/IEC 14882:2003.

-This page describes the C++ support in the GCC 9 series. +This section describes the C++ support in the GCC 9 series.

Table 1.1. C++ 1998/2003 Implementation Status

SectionDescriptionStatusComments
18 @@ -154,29 +154,29 @@ options. The pre-defined symbol __cplusplus is used to check for the presence of the required flag.

-This page describes the C++11 support in the GCC 9 series. +This status table is based on the table of contents of ISO/IEC 14882:2011. +

+This section describes the C++11 support in the GCC 9 series.

Table 1.2. C++ 2011 Implementation Status

SectionDescriptionStatusComments
18 Language support -
18.1GeneralY 
18.2TypesY 
18.3Implementation properties  
18.3.2Numeric Limits  
18.3.2.3Class template numeric_limitsY 
18.3.2.4numeric_limits membersY 
18.3.2.5float_round_styleN 
18.3.2.6float_denorm_styleN 
18.3.2.7numeric_limits specializationsY 
18.3.3C LibraryY 
18.4Integer types  
18.4.1Header <cstdint> synopsisY 
18.5Start and terminationPartialC library dependency for quick_exit, at_quick_exit
18.6Dynamic memory managementY 
18.7Type identification  
18.7.1Class type_infoY 
18.7.2Class bad_castY 
18.7.3Class bad_typeidY 
18.8Exception handling  
18.8.1Class exceptionY 
18.8.2Class bad_exceptionY 
18.8.3Abnormal terminationY 
18.8.4uncaught_exceptionY 
18.8.5Exception PropagationY 
18.8.6nested_exceptionY 
18.9Initializer lists  
18.9.1Initializer list constructorsY 
18.9.2Initializer list accessY 
18.9.3Initializer list range accessY 
18.10Other runtime supportY 
+
18.1General  
18.2TypesY 
18.3Implementation properties  
18.3.2Numeric Limits  
18.3.2.3Class template numeric_limitsY 
18.3.2.4numeric_limits membersY 
18.3.2.5float_round_styleN 
18.3.2.6float_denorm_styleN 
18.3.2.7numeric_limits specializationsY 
18.3.3C LibraryY 
18.4Integer types  
18.4.1Header <cstdint> synopsisY 
18.5Start and terminationPartialC library dependency for quick_exit, at_quick_exit
18.6Dynamic memory managementY 
18.7Type identification  
18.7.1Class type_infoY 
18.7.2Class bad_castY 
18.7.3Class bad_typeidY 
18.8Exception handling  
18.8.1Class exceptionY 
18.8.2Class bad_exceptionY 
18.8.3Abnormal terminationY 
18.8.4uncaught_exceptionY 
18.8.5Exception PropagationY 
18.8.6nested_exceptionY 
18.9Initializer lists  
18.9.1Initializer list constructorsY 
18.9.2Initializer list accessY 
18.9.3Initializer list range accessY 
18.10Other runtime supportY 
19 Diagnostics -
19.1GeneralY 
19.2Exception classesY 
19.3AssertionsY 
19.4Error numbersY 
19.5System error support  
19.5.1Class error_categoryY 
19.5.2Class error_codeY 
19.5.3Class error_conditionY 
19.5.4Comparison operatorsY 
19.5.5Class system_errorY 
+
19.1General  
19.2Exception classesY 
19.3AssertionsY 
19.4Error numbersY 
19.5System error support  
19.5.1Class error_categoryY 
19.5.2Class error_codeY 
19.5.3Class error_conditionY 
19.5.4Comparison operatorsY 
19.5.5Class system_errorY 
20 General utilities -
20.1General  
20.2Utility components  
20.2.1OperatorsY 
20.2.2SwapY 
20.2.3forward and move helpersY 
20.2.4Function template declvalY 
20.3Pairs  
20.3.1In general  
20.3.2Class template pairY 
20.3.3Specialized algorithmsY 
20.3.4Tuple-like access to pairY 
20.3.5Piecewise constructionY 
20.4Tuples  
20.4.1In general  
20.4.2Class template tuple  
20.4.2.1ConstructionY 
20.4.2.2AssignmentY 
20.4.2.3SwapY 
20.4.2.4Tuple creation functionsY 
20.4.2.5Tuple helper classesY 
20.4.2.6Element accessY 
20.4.2.7Relational operatorsY 
20.4.2.8Tuple traitsY 
20.4.2.9Tuple specialized algorithmsY 
20.5Class template bitsetY 
20.5.1bitset constructorsY 
20.5.2bitset membersY 
20.5.3bitset hash supportY 
20.5.4bitset operatorsY 
20.6Memory  
20.6.1In general  
20.6.2Header <memory> synopsis  
20.6.3Pointer traitsY 
20.6.4Pointer safetyY 
20.6.5AlignY 
20.6.6Allocator argument tagY 
20.6.7uses_allocatorY 
20.6.8Allocator traitsY 
20.6.9The default allocatorY 
20.6.10Raw storage iteratorY 
20.6.11Temporary buffersY 
20.6.12Specialized algorithms  
20.6.12.1addressofY 
20.6.12.2uninitialized_copyY 
20.6.12.3uninitialized_fillY 
20.6.12.4uninitialized_fill_nY 
20.6.13C libraryY 
20.7Smart pointers  
20.7.1Class template unique_ptrY 
20.7.2Shared-ownership pointersY 
20.7.2.1Class bad_weak_ptrY 
20.7.2.2Class template shared_ptrY +
20.1General  
20.2Utility components  
20.2.1OperatorsY 
20.2.2swapY 
20.2.3forward/move helpersY 
20.2.4Function template declvalY 
20.3Pairs  
20.3.1In general  
20.3.2Class template pairY 
20.3.3Specialized algorithmsY 
20.3.4Tuple-like access to pairY 
20.3.5Piecewise constructionY 
20.4Tuples  
20.4.1In general  
20.4.2Class template tuple  
20.4.2.1ConstructionY 
20.4.2.2AssignmentY 
20.4.2.3SwapY 
20.4.2.4Tuple creation functionsY 
20.4.2.5Tuple helper classesY 
20.4.2.6Element accessY 
20.4.2.7Relational operatorsY 
20.4.2.8Tuple traitsY 
20.4.2.9Tuple specialized algorithmsY 
20.5Class template bitsetY 
20.5.1bitset constructorsY 
20.5.2bitset membersY 
20.5.3bitset hash supportY 
20.5.4bitset operatorsY 
20.6Memory  
20.6.1In general  
20.6.2Header <memory> synopsis  
20.6.3Pointer traitsY 
20.6.4Pointer safetyY 
20.6.5AlignY 
20.6.6Allocator argument tagY 
20.6.7uses_allocatorY 
20.6.8Allocator traitsY 
20.6.9The default allocatorY 
20.6.10Raw storage iteratorY 
20.6.11Temporary buffersY 
20.6.12Specialized algorithms  
20.6.12.1addressofY 
20.6.12.2uninitialized_copyY 
20.6.12.3uninitialized_fillY 
20.6.12.4uninitialized_fill_nY 
20.6.13C libraryY 
20.7Smart pointers  
20.7.1Class template unique_ptrY 
20.7.2Shared-ownership pointers  
20.7.2.1Class bad_weak_ptrY 
20.7.2.2Class template shared_ptrY Uses code from boost::shared_ptr. -
20.7.2.3Class template weak_ptrY 
20.7.2.4Class template emable_shared_from_thisY 
20.7.2.5shared_ptr atomic accessY 
20.7.2.6Smart pointer hash supportY 
20.8Function objects  
20.8.1Definitions  
20.8.2Requirements  
20.8.3Class template reference_wrapperY 
20.8.4Arithmetic operationY 
20.8.5ComparisonsY 
20.8.6Logical operationsY 
20.8.7Bitwise operationsY 
20.8.8NegatorsY 
20.8.9Function template bindY 
20.8.10Function template mem_fnY 
20.8.11Polymorphic function wrappers  
20.8.11.1Class bad_function_callY 
20.8.11.2Class template functionPartialMissing allocator support
20.8.12Class template hashY 
20.9Metaprogramming and type traits  
20.9.1RequirementsY 
20.9.2Header <type_traits> synopsis  
20.9.3Helper classesY 
20.9.4Unary Type TraitsY 
20.9.4.1Primary type categoriesY 
20.9.4.2Composite type traitsY 
20.9.4.3Type propertiesY 
20.9.5Type property queriesY 
20.9.6Relationships between typesY 
20.9.7Transformations between types  
20.9.7.1Const-volatile modificationsY 
20.9.7.2Reference modificationsY 
20.9.7.3Sign modificationsY 
20.9.7.4Array modificationsY 
20.9.7.5Pointer modificationsY 
20.9.7.6Other transformationsY 
20.10Compile-time rational arithmetic  
20.10.1In general  
20.10.2Header <ratio> synopsis  
20.10.3Class template ratioY 
20.10.4Arithmetic on ratiosY 
20.10.5Comparison of ratiosY 
20.10.6SI types for ratioY 
20.11Time utilities  
20.11.3Clock requirementsY 
20.11.4Time-related traits  
20.11.4.1treat_as_floating_pointY 
20.11.4.2duration_valuesY 
20.11.4.3Specializations of common_typeY 
20.11.5Class template durationY 
20.11.6Class template time_pointY 
20.11.7Clocks  
20.11.7.1Class system_clockY 
20.11.7.2Class steady_clockY 
20.11.7.3Class high_resolution_clockY 
20.11.8Date and time functionsY 
20.12Scoped allocator adaptorY 
20.12.1Header <scoped_allocator> synopsis  
20.12.2Scoped allocator adaptor member typesY 
20.12.3Scoped allocator adaptor constructorsY 
20.12.4Scoped allocator adaptor membersY 
20.12.5Scoped allocator operatorsY 
20.13Class type_indexY 
+
20.7.2.3Class template weak_ptrY 
20.7.2.4Class template enable_shared_from_thisY 
20.7.2.5shared_ptr atomic accessY 
20.7.2.6Smart pointer hash supportY 
20.8Function objects  
20.8.1Definitions  
20.8.2Requirements  
20.8.3Class template reference_wrapperY 
20.8.4Arithmetic operationY 
20.8.5ComparisonsY 
20.8.6Logical operationsY 
20.8.7Bitwise operationsY 
20.8.8NegatorsY 
20.8.9Function template bindY 
20.8.10Function template mem_fnY 
20.8.11Polymorphic function wrappers  
20.8.11.1Class bad_function_callY 
20.8.11.2Class template functionPartialMissing allocator support
20.8.12Class template hashY 
20.9Metaprogramming and type traits  
20.9.1RequirementsY 
20.9.2Header <type_traits> synopsis  
20.9.3Helper classesY 
20.9.4Unary Type TraitsY 
20.9.4.1Primary type categoriesY 
20.9.4.2Composite type traitsY 
20.9.4.3Type propertiesY 
20.9.5Type property queriesY 
20.9.6Relationships between typesY 
20.9.7Transformations between types  
20.9.7.1Const-volatile modificationsY 
20.9.7.2Reference modificationsY 
20.9.7.3Sign modificationsY 
20.9.7.4Array modificationsY 
20.9.7.5Pointer modificationsY 
20.9.7.6Other transformationsY 
20.10Compile-time rational arithmetic  
20.10.1In general  
20.10.2Header <ratio> synopsis  
20.10.3Class template ratioY 
20.10.4Arithmetic on ratiosY 
20.10.5Comparison of ratiosY 
20.10.6SI types for ratioY 
20.11Time utilities  
20.11.3Clock requirementsY 
20.11.4Time-related traits  
20.11.4.1treat_as_floating_pointY 
20.11.4.2duration_valuesY 
20.11.4.3Specializations of common_typeY 
20.11.5Class template durationY 
20.11.6Class template time_pointY 
20.11.7Clocks  
20.11.7.1Class system_clockY 
20.11.7.2Class steady_clockY 
20.11.7.3Class high_resolution_clockY 
20.11.8Date and time functionsY 
20.12Scoped allocator adaptorY 
20.12.1Header <scoped_allocator> synopsis  
20.12.2Scoped allocator adaptor member typesY 
20.12.3Scoped allocator adaptor constructorsY 
20.12.4Scoped allocator adaptor membersY 
20.12.5Scoped allocator operatorsY 
20.13Class type_indexY 
21 Strings -
21.1GeneralY 
21.2Character traits  
21.2.1Character traits requirementsY 
21.2.2traits typedefsY 
21.2.3char_traits specializations  
21.2.3.1struct char_traits<char>Y 
21.2.3.2struct char_traits<char16_t>Y 
21.2.3.3struct char_traits<char32_t>Y 
21.2.3.4struct char_traits<wchar_t>Y 
21.3String classesY 
21.4Class template basic_stringY 
21.5Numeric ConversionsY 
21.6Hash supportY 
21.7Null-terminated sequence utilitiesPartialC library dependency. - Missing <cuchar> -
+
21.1GeneralY 
21.2Character traits  
21.2.1Character traits requirementsY 
21.2.2traits typedefsY 
21.2.3char_traits specializations  
21.2.3.1struct char_traits<char>Y 
21.2.3.2struct char_traits<char16_t>Y 
21.2.3.3struct char_traits<char32_t>Y 
21.2.3.4struct char_traits<wchar_t>Y 
21.3String classesY 
21.4Class template basic_stringY 
21.5Numeric ConversionsY 
21.6Hash supportY 
21.7Null-terminated sequence utilitiesPartialC library dependency.
22 Localization @@ -196,7 +196,7 @@ This page describes the C++11 support in the GCC 9 series. 26 Numerics -
26.1GeneralY 
26.2Numeric type requirementsY 
26.3The floating-point environmentY 
26.4Complex numbersY 
26.5Random number generation  
26.5.1Requirements  
26.5.2Header <random> synopsis  
26.5.3Random number engine class templates  
26.5.3.1Class template linear_congruential_engineY 
26.5.3.2Class template mersenne_twister_engineY 
26.5.3.3Class template subtract_with_carry_engineY 
26.5.4Random number engine adaptor class templates  
26.5.4.2Class template discard_block_engineY 
26.5.4.3Class template independent_bits_engineY 
26.5.4.4Class template shuffle_order_engineY 
26.5.5Engines and engine adaptors with predefined parametersY 
26.5.6Class random_deviceY 
26.5.7Utilities  
26.5.7.1Class seed_seqY 
26.5.7.2Function template generate_canonicalY 
26.5.8Random number distribution class templates  
26.5.8.2Uniform distributions  
26.5.8.2.1Class template uniform_int_distributionY 
26.5.8.2.2Class template uniform_real_distributionY 
26.5.8.3Bernoulli distributions  
26.5.8.3.1Class bernoulli_distributionY 
26.5.8.3.2Class template binomial_distributionY 
26.5.8.3.3Class template geometric_distributionY 
26.5.8.3.4Class template negative_binomial_distributionY 
26.5.8.4Poisson distributions  
26.5.8.4.1Class template poisson_distributionY 
26.5.8.4.2Class template exponential_distributionY 
26.5.8.4.3Class template gamma_distributionY 
26.5.8.4.4Class template weibull_distributionY 
26.5.8.4.5Class template extreme_value_distributionY 
26.5.8.5Normal distributions  
26.5.8.5.1Class template normal_distributionY 
26.5.8.5.2Class template lognormal_distributionY 
26.5.8.5.3Class template chi_squared_distributionY 
26.5.8.5.4Class template cauchy_distributionY 
26.5.8.5.5Class template fisher_f_distributionY 
26.5.8.5.6Class template student_t_distributionY 
26.5.8.6Sampling distributions  
26.5.8.6.1Class template discrete_distributionY 
26.5.8.6.2Class template piecewise_constant_distributionY 
26.5.8.6.3Class template piecewise_linear_distributionY 
26.6Numeric arrays  
26.6.1Header <valarray> synopsisY 
26.6.2Class template valarrayY 
26.6.3valarray non-member operationsY 
26.6.4Class sliceY 
26.6.5Class template slice_arrayY 
26.6.6The gslice classY 
26.6.7Class template gslice_arrayY 
26.6.8Class template mask_arrayY 
26.6.9Class template indirect_arrayY 
26.6.10valarray range accessY 
26.7Generalized numeric operations  
26.7.1Header <numeric> synopsisY 
26.7.2accumulateY 
26.7.3inner_productY 
26.7.4partial_sumY 
26.7.5adjacent_differenceY 
26.7.6iotaY 
26.8C LibraryY 
+
26.1General  
26.2Numeric type requirementsY 
26.3The floating-point environmentY 
26.4Complex numbersY 
26.5Random number generation  
26.5.1Requirements  
26.5.2Header <random> synopsis  
26.5.3Random number engine class templates  
26.5.3.1Class template linear_congruential_engineY 
26.5.3.2Class template mersenne_twister_engineY 
26.5.3.3Class template subtract_with_carry_engineY 
26.5.4Random number engine adaptor class templates  
26.5.4.2Class template discard_block_engineY 
26.5.4.3Class template independent_bits_engineY 
26.5.4.4Class template shuffle_order_engineY 
26.5.5Engines and engine adaptors with predefined parametersY 
26.5.6Class random_deviceY 
26.5.7Utilities  
26.5.7.1Class seed_seqY 
26.5.7.2Function template generate_canonicalY 
26.5.8Random number distribution class templates  
26.5.8.2Uniform distributions  
26.5.8.2.1Class template uniform_int_distributionY 
26.5.8.2.2Class template uniform_real_distributionY 
26.5.8.3Bernoulli distributions  
26.5.8.3.1Class bernoulli_distributionY 
26.5.8.3.2Class template binomial_distributionY 
26.5.8.3.3Class template geometric_distributionY 
26.5.8.3.4Class template negative_binomial_distributionY 
26.5.8.4Poisson distributions  
26.5.8.4.1Class template poisson_distributionY 
26.5.8.4.2Class template exponential_distributionY 
26.5.8.4.3Class template gamma_distributionY 
26.5.8.4.4Class template weibull_distributionY 
26.5.8.4.5Class template extreme_value_distributionY 
26.5.8.5Normal distributions  
26.5.8.5.1Class template normal_distributionY 
26.5.8.5.2Class template lognormal_distributionY 
26.5.8.5.3Class template chi_squared_distributionY 
26.5.8.5.4Class template cauchy_distributionY 
26.5.8.5.5Class template fisher_f_distributionY 
26.5.8.5.6Class template student_t_distributionY 
26.5.8.6Sampling distributions  
26.5.8.6.1Class template discrete_distributionY 
26.5.8.6.2Class template piecewise_constant_distributionY 
26.5.8.6.3Class template piecewise_linear_distributionY 
26.6Numeric arrays  
26.6.1Header <valarray> synopsisY 
26.6.2Class template valarrayY 
26.6.3valarray non-member operationsY 
26.6.4Class sliceY 
26.6.5Class template slice_arrayY 
26.6.6The gslice classY 
26.6.7Class template gslice_arrayY 
26.6.8Class template mask_arrayY 
26.6.9Class template indirect_arrayY 
26.6.10valarray range accessY 
26.7Generalized numeric operations  
26.7.1Header <numeric> synopsisY 
26.7.2Accumulate>Y 
26.7.3Inner productY 
26.7.4Partial sumY 
26.7.5Adjacent differenceY 
26.7.6IotaY 
26.8C LibraryY 
27 Input/output library @@ -208,15 +208,17 @@ This page describes the C++11 support in the GCC 9 series. 29 Atomic operations -
29.1GeneralY 
29.2Header <atomic> synopsisY 
29.3Order and consistencyPartial 
29.4Lock-free propertyY 
29.5Atomic typesY 
29.6Operations on atomic typesY 
29.7Flag Type and operationsY 
29.8FencesY 
+
29.1GeneralY 
29.2Header <atomic> synopsisY 
29.3Order and consistencyY 
29.4Lock-free propertyY 
29.5Atomic typesY 
29.6Operations on atomic typesY 
29.7Flag Type and operationsY 
29.8FencesY 
30 Thread support -
30.1GeneralY 
30.2RequirementsY 
30.3Threads  
30.3.1Class threadPartialthread::id comparisons not well-defined
30.3.2Namespace this_threadY 
30.4Mutual exclusion  
30.4.1Mutex requirements  
30.4.1.1In general  
30.4.1.2Mutex types  
30.4.1.2.1Class mutexY 
30.4.1.2.2Class recursive_mutexY 
30.4.1.3Timed mutex types  
30.4.1.3.1Class timed_mutexY 
30.4.1.3.2Class recursive_timed_mutexY 
30.4.2Locks  
30.4.2.1Class template lock_guardY 
30.4.2.2Class template unique_lockY 
30.4.3Generic locking algorithmsY 
30.4.4Call once  
30.4.4.1Struct once_flagY 
30.4.4.2Function call_onceY 
30.5Condition variablesY 
30.5.1Class condition_variableY 
30.5.2Class condition_variable_anyY 
30.6Futures  
30.6.1Overview  
30.6.2Error handlingY 
30.6.3Class future_errorY 
30.6.4Shared stateY 
30.6.5Class template promiseY 
30.6.6Class template futureY 
30.6.7Class template shared_futureY 
30.6.8Function template asyncY 
30.6.9Class template packaged_taskY 
+
30.1GeneralY 
30.2RequirementsY 
30.3Threads  
30.3.1Class threadPartialthread::id comparisons not well-defined
30.3.2Namespace this_threadY 
30.4Mutual exclusion  
30.4.1Mutex requirements  
30.4.1.1In general  
30.4.1.2Mutex types  
30.4.1.2.1Class mutexY 
30.4.1.2.2Class recursive_mutexY 
30.4.1.3Timed mutex types  
30.4.1.3.1Class timed_mutexY 
30.4.1.3.2Class recursive_timed_mutexY 
30.4.2Locks  
30.4.2.1Class template lock_guardY 
30.4.2.2Class template unique_lockY 
30.4.3Generic locking algorithmsY 
30.4.4Call once  
30.4.4.1Struct once_flagY 
30.4.4.2Function call_onceBrokenSee PR + 66146 +
30.5Condition variablesY 
30.5.1Class condition_variableY 
30.5.2Class condition_variable_anyY 
30.6Futures  
30.6.1Overview  
30.6.2Error handlingY 
30.6.3Class future_errorY 
30.6.4Shared stateY 
30.6.5Class template promiseY 
30.6.6Class template futureY 
30.6.7Class template shared_futureY 
30.6.8Function template asyncY 
30.6.9Class template packaged_taskY 
Appendix D Compatibility features -
D.1Increment operator with bool operand  
D.2register keyword  
D.3Implicit declaration of copy functions  
D.4Dynamic exception specifications  
D.5C standard library headers  
D.6Old iostreams members  
D.7char* streams  
D.8Function objects  
D.9Binders  
D.10auto_ptr  
D.11Violating exception-specifications  

Implementation Specific Behavior

For behaviour which is also specified by the 1998 and 2003 standards, +

D.1Increment operator with bool operand  
D.2register keyword  
D.3Implicit declaration of copy functions  
D.4Dynamic exception specifications  
D.5C standard library headersY 
D.6Old iostreams membersY 
D.7char* streamsY 
D.8Function objectsY 
D.9BindersY 
D.10auto_ptrY 
D.11Violating exception-specificationsY 

Implementation Specific Behavior

For behaviour which is also specified by the 1998 and 2003 standards, see C++ 1998/2003 Implementation Specific Behavior. This section only documents behaviour which is new in the 2011 standard. @@ -386,80 +388,73 @@ options. The pre-defined symbol __cplusplus is used to check for the presence of the required flag.

-This page describes the C++14 and library TS support in the GCC 9 series. -

Table 1.3. C++ 2014 Implementation Status

PaperTitleStatusComments
- - N3669 - - Fixing constexpr member functions without constY 
- - N3668 - - exchange() utility functionY 
- - N3670 - - Wording for Addressing Tuples by TypeY 
- - N3656 - - make_uniqueY 
- - N3462 - - std::result_of and SFINAEY 
- - N3545 - - An Incremental Improvement to integral_constantY 
- - N3642 - - User-defined Literals for Standard Library TypesY 
- - N3671 - - Making non-modifying sequence operations more robustY 
- - N3654 - - Quoted Strings Library ProposalY 
- - N3469 - - Constexpr Library Additions: chronoY 
- - N3470 - - Constexpr Library Additions: containersY 
- - N3471 - - Constexpr Library Additions: utilitiesY 
- - N3658 - - Compile-time integer sequencesY 
- - N3659 - - Shared Locking in C++Y 
- - N3421 - - Making Operator Functors greater<>Y 
- - N3657 - - Adding heterogeneous comparison lookup to associative containersY 
- - N3655 - - TransformationTraits ReduxY 
- - N3644 - - Null Forward IteratorsPartialOnly affects Debug Mode

Table 1.4. C++ Technical Specifications Implementation Status

PaperTitleStatusComments
+This status table is based on the table of contents of ISO/IEC 14882:2014. +Some subclauses are not shown in the table where the content is unchanged +since C++11 and the implementation is complete. +

+This section describes the C++14 and library TS support in the GCC 9 series. +

Table 1.3. C++ 2014 Implementation Status

SectionDescriptionStatusComments
+ 18 + + Language support +
18.1General  
18.2TypesY 
18.3Implementation properties  
18.3.2Numeric Limits  
18.3.2.3Class template numeric_limitsY 
18.3.2.4numeric_limits membersY 
18.3.2.5float_round_styleN 
18.3.2.6float_denorm_styleN 
18.3.2.7numeric_limits specializationsY 
18.3.3C LibraryY 
18.4Integer types  
18.4.1Header <cstdint> synopsisY 
18.5Start and terminationPartialC library dependency for quick_exit, at_quick_exit
18.6Dynamic memory managementY 
18.7Type identification  
18.7.1Class type_infoY 
18.7.2Class bad_castY 
18.7.3Class bad_typeidY 
18.8Exception handling  
18.8.1Class exceptionY 
18.8.2Class bad_exceptionY 
18.8.3Abnormal terminationY 
18.8.4uncaught_exceptionY 
18.8.5Exception PropagationY 
18.8.6nested_exceptionY 
18.9Initializer lists  
18.9.1Initializer list constructorsY 
18.9.2Initializer list accessY 
18.9.3Initializer list range accessY 
18.10Other runtime supportY 
+ 19 + + Diagnostics +
19.1General  
19.2Exception classesY 
19.3AssertionsY 
19.4Error numbersY 
19.5System error support  
19.5.1Class error_categoryY 
19.5.2Class error_codeY 
19.5.3Class error_conditionY 
19.5.4Comparison operatorsY 
19.5.5Class system_errorY 
+ 20 + + General utilities +
20.1General  
20.2Utility components  
20.2.1OperatorsY 
20.2.2swapY 
20.2.3exchangeY 
20.2.4forward/move helpersY 
20.2.5Function template declvalY 
20.3PairsY 
20.4TuplesY 
20.5Compile-time integer sequences  
20.5.2Class template integer_sequenceY 
20.5.3Alias template make_integer_sequenceY 
20.6Class template bitsetY 
20.7MemoryY 
20.8Smart pointers  
20.8.1Class template unique_ptrY 
20.8.1.1Default deletersY 
20.8.1.2unique_ptr for single objectsY 
20.8.1.3unique_ptr for array objects with a runtime lengthY 
20.8.1.4unique_ptr creationY 
20.8.1.5unique_ptr specialized algorithmsY 
20.8.2Shared-ownership pointers  
20.8.2.1Class bad_weak_ptrY 
20.8.2.2Class template shared_ptrY + Uses code from + boost::shared_ptr. +
20.8.2.3Class template weak_ptrY 
20.8.2.4Class template owner_lessY 
20.8.2.5Class template enable_shared_from_thisY 
20.8.2.6shared_ptr atomic accessY 
20.8.2.7Smart pointer hash supportY 
20.9Function objects  
20.9.1Definitions  
20.9.2Requirements  
20.9.3Class template reference_wrapperY 
20.9.4Arithmetic operationY 
20.9.5ComparisonsY 
20.8.6Logical operationsY 
20.9.7Bitwise operationsY 
20.9.8NegatorsY 
20.9.9Function object bindersY 
20.9.10Function template mem_fnY 
20.9.11Polymorphic function wrappers  
20.9.11.1Class bad_function_callY 
20.9.11.2Class template functionPartialMissing allocator support
20.9.12Class template hashY 
20.10Metaprogramming and type traits  
20.10.1RequirementsY 
20.10.2Header <type_traits> synopsis  
20.10.3Helper classesY 
20.10.4Unary Type TraitsY 
20.10.5Type property queriesY 
20.10.6Relationships between typesY 
20.10.7Transformations between typesY 
20.11Compile-time rational arithmeticY 
20.12Time utilities  
20.12.3Clock requirementsY 
20.12.4Time-related traitsY 
20.12.5Class template durationY 
20.12.5.8Suffixes for duration literalsY 
20.12.6Class template time_pointY 
20.12.7ClocksY 
20.12.8Date and time functionsY 
20.13Scoped allocator adaptorY 
20.14Class type_indexY 
+ 21 + + Strings +
21.1GeneralY 
21.2Character traitsY 
21.3String classesY 
21.4Class template basic_stringY 
21.5Numeric ConversionsY 
21.6Hash supportY 
21.7Suffixes for basic_string literalsY 
21.7Null-terminated sequence utilitiesPartialC library dependency.
+ 22 + + Localization +
22.1GeneralY 
22.2Header <locale> synopsisY 
22.3LocalesY 
22.4Standard locale categoriesY 
22.5Standard code conversion facetsY 
22.6C Library LocalesY 
+ 23 + + Containers +
23.1General  
23.2Container requirementsY 
23.3Sequence containersY 
23.4Associative containersY 
23.5Unordered associative containersY 
23.6Container adaptorsY 
+ 24 + + Iterators +
24.1GeneralY 
24.2Iterator requirementsY 
24.3Header <iterator> synopsisY 
24.4Iterator primitivesY 
24.5Iterator adaptorsY 
24.6Stream iteratorsY 
24.7range accessY 
+ 25 + + Algorithms +
25.1General  
25.2Non-modifying sequence operationsY 
25.3Mutating sequence operationsY 
25.4Sorting and related operationsY 
25.5C library algorithmsY 
+ 26 + + Numerics +
26.1General  
26.2Numeric type requirementsY 
26.3The floating-point environmentY 
26.4Complex numbersY 
26.4.10Suffixes for complex number literalsY 
26.5Random number generationY 
26.6Numeric arraysY 
26.7Generalized numeric operationsY 
26.8C LibraryY 
+ 27 + + Input/output library +
27.1GeneralY 
27.2Iostreams requirementsY 
27.2.1Imbue LimitationsY 
27.2.2Positioning Type LimitationsY 
27.2.3Thread safetyPartial 
27.3Forward declarationsY 
27.4Standard iostream objectsY 
27.5Iostreams base classesY 
27.6Stream buffersY 
27.7Formatting and manipulatorsY 
27.7.6Quoted manipulatorsY 
27.8String-based streamsY 
27.9File-based streamsY 
+ 28 + + Regular expressions +
28.1GeneralY 
28.2DefinitionsY 
28.3RequirementsY 
28.4Header <regex> synopsisY 
28.5Namespace std::regex_constantsY 
28.6Class regex_errorY 
28.7Class template regex_traitsPartialtransform_primary is not correctly implemented 
28.8Class template basic_regexY 
28.9Class template sub_matchY 
28.10Class template match_resultsY 
28.11Regular expression algorithmsY 
28.12Regular expression IteratorsY 
28.13Modified ECMAScript regular expression grammarY 
+ 29 + + Atomic operations +
29.1GeneralY 
29.2Header <atomic> synopsisY 
29.3Order and consistencyY 
29.4Lock-free propertyY 
29.5Atomic typesY 
29.6Operations on atomic typesY 
29.7Flag Type and operationsY 
29.8FencesY 
+ 30 + + Thread support +
30.1GeneralY 
30.2RequirementsY 
30.3Threads  
30.3.1Class threadPartialthread::id comparisons not well-defined
30.3.2Namespace this_threadY 
30.4Mutual exclusion  
30.4.1Mutex requirements  
30.4.1.1In general  
30.4.1.2Mutex types  
30.4.1.2.1Class mutexY 
30.4.1.2.2Class recursive_mutexY 
30.4.1.3Timed mutex types  
30.4.1.3.1Class timed_mutexY 
30.4.1.3.2Class recursive_timed_mutexY 
30.4.1.4Shared timed mutex types  
30.4.1.4.1Class shared_timed_mutexY 
30.4.2Locks  
30.4.2.1Class template lock_guardY 
30.4.2.2Class template unique_lockY 
30.4.2.3Class template shared_lockY 
30.4.3Generic locking algorithmsY 
30.4.4Call once  
30.4.4.1Struct once_flagY 
30.4.4.2Function call_onceBrokenSee PR + 66146 +
30.5Condition variablesY 
30.5.1Class condition_variableY 
30.5.2Class condition_variable_anyY 
30.6Futures  
30.6.1Overview  
30.6.2Error handlingY 
30.6.3Class future_errorY 
30.6.4Shared stateY 
30.6.5Class template promiseY 
30.6.6Class template futureY 
30.6.7Class template shared_futureY 
30.6.8Function template asyncY 
30.6.9Class template packaged_taskY 
+ Appendix D + + Compatibility features +
D.1Increment operator with bool operand  
D.2register keyword  
D.3Implicit declaration of copy functions  
D.4Dynamic exception specifications  
D.5C standard library headersY 
D.6Old iostreams membersY 
D.7char* streamsY 
D.8Function objectsY 
D.9BindersY 
D.10auto_ptrY 
D.11Violating exception-specificationsY 
D.12Random shuffleY 

Table 1.4. C++ Technical Specifications Implementation Status

+ +
PaperTitleStatusComments
N3662 diff --git a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml index 44a042c27244..df3b2c80d20e 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml @@ -18,7 +18,7 @@ This status table is based on the table of contents of ISO/IEC 14882:2003. -This page describes the C++ support in the GCC 9 series. +This section describes the C++ support in the GCC 9 series. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 568102823b04..431eb02bb6b7 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -27,7 +27,11 @@ presence of the required flag. -This page describes the C++11 support in the GCC 9 series. +This status table is based on the table of contents of ISO/IEC 14882:2011. + + + +This section describes the C++11 support in the GCC 9 series. @@ -70,7 +74,7 @@ This page describes the C++11 support in the GCC 9 series. 18.1 General - Y + @@ -264,7 +268,7 @@ This page describes the C++11 support in the GCC 9 series. 19.1 General - Y + @@ -349,13 +353,13 @@ This page describes the C++11 support in the GCC 9 series. 20.2.2 - Swap + swap Y 20.2.3 - forward and move helpers + forward/move helpers Y @@ -626,7 +630,7 @@ This page describes the C++11 support in the GCC 9 series. 20.7.2 Shared-ownership pointers - Y + @@ -652,7 +656,7 @@ This page describes the C++11 support in the GCC 9 series. 20.7.2.4 - Class template emable_shared_from_this + Class template enable_shared_from_this Y @@ -1114,9 +1118,7 @@ This page describes the C++11 support in the GCC 9 series. 21.7 Null-terminated sequence utilities Partial - C library dependency. - Missing <cuchar> - + C library dependency. @@ -1635,7 +1637,7 @@ This page describes the C++11 support in the GCC 9 series. 26.1 General - Y + @@ -1988,31 +1990,31 @@ This page describes the C++11 support in the GCC 9 series. 26.7.2 - accumulate + Accumulate> Y 26.7.3 - inner_product + Inner product Y 26.7.4 - partial_sum + Partial sum Y 26.7.5 - adjacent_difference + Adjacent difference Y 26.7.6 - iota + Iota Y @@ -2230,10 +2232,9 @@ This page describes the C++11 support in the GCC 9 series. - 29.3 Order and consistency - Partial + Y @@ -2396,10 +2397,14 @@ This page describes the C++11 support in the GCC 9 series. + 30.4.4.2 Function call_once - Y - + Broken + See PR + 66146 + 30.5 @@ -2514,43 +2519,43 @@ This page describes the C++11 support in the GCC 9 series. D.5 C standard library headers - + Y D.6 Old iostreams members - + Y D.7 char* streams - + Y D.8 Function objects - + Y D.9 Binders - + Y D.10 auto_ptr - + Y D.11 Violating exception-specifications - + Y diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml index 7b604307c8e1..f0872f6f8d06 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml @@ -1,4 +1,4 @@ -
@@ -20,9 +20,24 @@ presence of the required flag. -This page describes the C++14 and library TS support in the GCC 9 series. +This status table is based on the table of contents of ISO/IEC 14882:2014. +Some subclauses are not shown in the table where the content is unchanged +since C++11 and the implementation is complete. + +This section describes the C++14 and library TS support in the GCC 9 series. + + + + C++ 2014 Implementation Status @@ -31,10 +46,10 @@ This page describes the C++14 and library TS support in the GCC 9 series. - + - Paper - Title + Section + Description Status Comments @@ -44,210 +59,1501 @@ This page describes the C++14 and library TS support in the GCC 9 series. - - N3669 - + 18 - Fixing constexpr member functions without const + + Language support + + + + + 18.1 + General + + + + + 18.2 + Types Y + + 18.3 + Implementation properties + + + - - - N3668 - - - exchange() utility function + 18.3.2 + Numeric Limits + + + + + 18.3.2.3 + Class template numeric_limits Y - - - - N3670 - - - Wording for Addressing Tuples by Type + 18.3.2.4 + numeric_limits members Y - - - - N3656 - - - make_unique + + 18.3.2.5 + float_round_style + N + + + + + 18.3.2.6 + float_denorm_style + N + + + + 18.3.2.7 + numeric_limits specializations Y - - - - N3462 - - - std::result_of and SFINAE + 18.3.3 + C Library Y - - - N3545 - - - An Incremental Improvement to integral_constant + 18.4 + Integer types + + + + + 18.4.1 + Header <cstdint> synopsis Y - - - - N3642 - - - User-defined Literals for Standard Library Types + + 18.5 + Start and termination + Partial + C library dependency for quick_exit, at_quick_exit + + + 18.6 + Dynamic memory management Y - - - - N3671 - - - Making non-modifying sequence operations more robust + 18.7 + Type identification + + + + + 18.7.1 + Class type_info Y - - - - N3654 - - - Quoted Strings Library Proposal + 18.7.2 + Class bad_cast Y - - - - - N3469 - - - Constexpr Library Additions: chrono + 18.7.3 + Class bad_typeid Y - - - - N3470 - - - Constexpr Library Additions: containers + 18.8 + Exception handling + + + + + 18.8.1 + Class exception + Y + + + + 18.8.2 + Class bad_exception + Y + + + + 18.8.3 + Abnormal termination + Y + + + + 18.8.4 + uncaught_exception + Y + + + + 18.8.5 + Exception Propagation + Y + + + + 18.8.6 + nested_exception + Y + + + + 18.9 + Initializer lists + + + + + 18.9.1 + Initializer list constructors + Y + + + + 18.9.2 + Initializer list access + Y + + + + 18.9.3 + Initializer list range access + Y + + + + 18.10 + Other runtime support Y - - - N3471 - + 19 + + + Diagnostics - Constexpr Library Additions: utilities + + + 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 + Class error_category + Y + + + + 19.5.2 + Class error_code + Y + + + + 19.5.3 + Class error_condition + Y + + + + 19.5.4 + Comparison operators + Y + + + + 19.5.5 + Class system_error Y - - - - N3658 - + 20 + + + General utilities + + + 20.1 + General + + + + + 20.2 + Utility components + + + + + 20.2.1 + Operators + Y + + + + 20.2.2 + swap + Y + + + + 20.2.3 + exchange + Y + + + + 20.2.4 + forward/move helpers + Y + + + + 20.2.5 + Function template declval + Y + + + + 20.3 + Pairs + Y + + + + 20.4 + Tuples + Y + + + + 20.5 Compile-time integer sequences + + + + + 20.5.2 + Class template integer_sequence Y - - - - N3659 - - - Shared Locking in C++ + 20.5.3 + Alias template make_integer_sequence Y - - - - - N3421 - - - Making Operator Functors greater<> + 20.6 + Class template bitset Y - - - - N3657 - - - Adding heterogeneous comparison lookup to associative containers + 20.7 + Memory Y - - - - N3655 - - - TransformationTraits Redux + 20.8 + Smart pointers + + + + + 20.8.1 + Class template unique_ptr Y - - - - - N3644 - - - Null Forward Iterators - Partial - Only affects Debug Mode + 20.8.1.1 + Default deleters + Y + - - - -
- + + 20.8.1.2 + unique_ptr for single objects + Y + + + + 20.8.1.3 + unique_ptr for array objects with a runtime length + Y + + + + 20.8.1.4 + unique_ptr creation + Y + + + + 20.8.1.5 + unique_ptr specialized algorithms + Y + + + + 20.8.2 + Shared-ownership pointers + + + + + 20.8.2.1 + Class bad_weak_ptr + Y + + + + 20.8.2.2 + Class template shared_ptr + Y + + Uses code from + boost::shared_ptr. + + + + 20.8.2.3 + Class template weak_ptr + Y + + + + 20.8.2.4 + Class template owner_less + Y + + + + 20.8.2.5 + Class template enable_shared_from_this + Y + + + + 20.8.2.6 + shared_ptr atomic access + Y + + + + 20.8.2.7 + Smart pointer hash support + Y + + + + 20.9 + Function objects + + + + + 20.9.1 + Definitions + + + + + 20.9.2 + Requirements + + + + + 20.9.3 + Class template reference_wrapper + Y + + + + 20.9.4 + Arithmetic operation + Y + + + + 20.9.5 + Comparisons + Y + + + + 20.8.6 + Logical operations + Y + + + + 20.9.7 + Bitwise operations + Y + + + + 20.9.8 + Negators + Y + + + + 20.9.9 + Function object binders + Y + + + + 20.9.10 + Function template mem_fn + Y + + + + 20.9.11 + Polymorphic function wrappers + + + + + 20.9.11.1 + Class bad_function_call + Y + + + + + 20.9.11.2 + Class template function + Partial + Missing allocator support + + + 20.9.12 + Class template hash + Y + + + + 20.10 + Metaprogramming and type traits + + + + + 20.10.1 + Requirements + Y + + + + 20.10.2 + Header <type_traits> synopsis + + + + + 20.10.3 + Helper classes + Y + + + + 20.10.4 + Unary Type Traits + Y + + + + 20.10.5 + Type property queries + Y + + + + 20.10.6 + Relationships between types + Y + + + + 20.10.7 + Transformations between types + Y + + + + 20.11 + Compile-time rational arithmetic + Y + + + + 20.12 + Time utilities + + + + + 20.12.3 + Clock requirements + Y + + + + 20.12.4 + Time-related traits + Y + + + + 20.12.5 + Class template duration + Y + + + + 20.12.5.8 + Suffixes for duration literals + Y + + + + 20.12.6 + Class template time_point + Y + + + + 20.12.7 + Clocks + Y + + + + 20.12.8 + Date and time functions + Y + + + + 20.13 + Scoped allocator adaptor + Y + + + + 20.14 + Class type_index + Y + + + + + 21 + + + Strings + + + + 21.1 + General + Y + + + + 21.2 + Character traits + Y + + + + 21.3 + String classes + Y + + + + 21.4 + Class template basic_string + Y + + + + 21.5 + Numeric Conversions + Y + + + + 21.6 + Hash support + Y + + + + 21.7 + Suffixes for basic_string literals + Y + + + + + 21.7 + Null-terminated sequence utilities + Partial + C library dependency. + + + + 22 + + + Localization + + + + 22.1 + General + Y + + + + 22.2 + Header <locale> synopsis + Y + + + + 22.3 + Locales + Y + + + + 22.4 + Standard locale categories + Y + + + + 22.5 + Standard code conversion facets + Y + + + + 22.6 + C Library Locales + Y + + + + + 23 + + + Containers + + + + 23.1 + General + + + + + 23.2 + Container requirements + Y + + + + 23.3 + Sequence containers + Y + + + + 23.4 + Associative containers + Y + + + + 23.5 + Unordered associative containers + Y + + + + 23.6 + Container adaptors + Y + + + + + 24 + + + Iterators + + + + 24.1 + General + Y + + + + 24.2 + Iterator requirements + Y + + + + 24.3 + Header <iterator> synopsis + Y + + + + 24.4 + Iterator primitives + Y + + + + 24.5 + Iterator adaptors + Y + + + + 24.6 + Stream iterators + Y + + + + 24.7 + range access + Y + + + + + 25 + + + Algorithms + + + + 25.1 + General + + + + + 25.2 + Non-modifying sequence operations + Y + + + + 25.3 + Mutating sequence operations + Y + + + + 25.4 + Sorting and related operations + Y + + + + 25.5 + C library algorithms + Y + + + + + 26 + + + Numerics + + + + 26.1 + General + + + + + 26.2 + Numeric type requirements + Y + + + + 26.3 + The floating-point environment + Y + + + + 26.4 + Complex numbers + Y + + + + 26.4.10 + Suffixes for complex number literals + Y + + + + 26.5 + Random number generation + Y + + + + 26.6 + Numeric arrays + Y + + + + 26.7 + Generalized numeric operations + Y + + + + 26.8 + C Library + Y + + + + + 27 + + + Input/output library + + + + 27.1 + General + Y + + + + 27.2 + Iostreams requirements + Y + + + + 27.2.1 + Imbue Limitations + Y + + + + 27.2.2 + Positioning Type Limitations + Y + + + + + 27.2.3 + Thread safety + Partial + + + + 27.3 + Forward declarations + Y + + + + 27.4 + Standard iostream objects + Y + + + + 27.5 + Iostreams base classes + Y + + + + 27.6 + Stream buffers + Y + + + + 27.7 + Formatting and manipulators + Y + + + + 27.7.6 + Quoted manipulators + Y + + + + 27.8 + String-based streams + Y + + + + 27.9 + File-based streams + Y + + + + + 28 + + + Regular expressions + + + + 28.1 + General + Y + + + + 28.2 + Definitions + Y + + + + 28.3 + Requirements + Y + + + + 28.4 + Header <regex> synopsis + Y + + + + 28.5 + Namespace std::regex_constants + Y + + + + 28.6 + Class regex_error + Y + + + + + 28.7 + Class template regex_traits + Partial + transform_primary is not correctly implemented + + + + 28.8 + Class template basic_regex + Y + + + + 28.9 + Class template sub_match + Y + + + + 28.10 + Class template match_results + Y + + + + 28.11 + Regular expression algorithms + Y + + + + 28.12 + Regular expression Iterators + Y + + + + 28.13 + Modified ECMAScript regular expression grammar + Y + + + + + 29 + + + Atomic operations + + + + 29.1 + General + Y + + + + 29.2 + Header <atomic> synopsis + Y + + + + 29.3 + Order and consistency + Y + + + + 29.4 + Lock-free property + Y + + + + 29.5 + Atomic types + Y + + + + 29.6 + Operations on atomic types + Y + + + + 29.7 + Flag Type and operations + Y + + + + 29.8 + Fences + Y + + + + + 30 + + + Thread support + + + + 30.1 + General + Y + + + + 30.2 + Requirements + Y + + + + 30.3 + Threads + + + + + + 30.3.1 + Class thread + Partial + thread::id comparisons not well-defined + + + 30.3.2 + Namespace this_thread + Y + + + + 30.4 + Mutual exclusion + + + + + 30.4.1 + Mutex requirements + + + + + 30.4.1.1 + In general + + + + + 30.4.1.2 + Mutex types + + + + + 30.4.1.2.1 + Class mutex + Y + + + + 30.4.1.2.2 + Class recursive_mutex + Y + + + + 30.4.1.3 + Timed mutex types + + + + + 30.4.1.3.1 + Class timed_mutex + Y + + + + 30.4.1.3.2 + Class recursive_timed_mutex + Y + + + + 30.4.1.4 + Shared timed mutex types + + + + + 30.4.1.4.1 + Class shared_timed_mutex + Y + + + + 30.4.2 + Locks + + + + + 30.4.2.1 + Class template lock_guard + Y + + + + 30.4.2.2 + Class template unique_lock + Y + + + + 30.4.2.3 + Class template shared_lock + Y + + + + 30.4.3 + Generic locking algorithms + Y + + + + 30.4.4 + Call once + + + + + 30.4.4.1 + Struct once_flag + Y + + + + + 30.4.4.2 + Function call_once + Broken + See PR + 66146 + + + + 30.5 + Condition variables + Y + + + + 30.5.1 + Class condition_variable + Y + + + + 30.5.2 + Class condition_variable_any + Y + + + + 30.6 + Futures + + + + + 30.6.1 + Overview + + + + + 30.6.2 + Error handling + Y + + + + 30.6.3 + Class future_error + Y + + + + 30.6.4 + Shared state + Y + + + + 30.6.5 + Class template promise + Y + + + + 30.6.6 + Class template future + Y + + + + 30.6.7 + Class template shared_future + Y + + + + 30.6.8 + Function template async + Y + + + + 30.6.9 + Class template packaged_task + Y + + + + + Appendix D + + + Compatibility features + + + + D.1 + Increment operator with bool operand + + + + + D.2 + register keyword + + + + + D.3 + Implicit declaration of copy functions + + + + + D.4 + Dynamic exception specifications + + + + + D.5 + C standard library headers + Y + + + + D.6 + Old iostreams members + Y + + + + D.7 + char* streams + Y + + + + D.8 + Function objects + Y + + + + D.9 + Binders + Y + + + + D.10 + auto_ptr + Y + + + + D.11 + Violating exception-specifications + Y + + + + D.12 + Random shuffle + Y + + + +
C++ Technical Specifications Implementation Status -- 2.47.3