This adds a full table of contents for the C++14 and C++17 standards, with status for each part.
For C++14 the list of proposals is removed, as it adds little value now that everything is supported. For C++17 the table of proposals is retained, because it documents he feature test macros for the features. * 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/xml/manual/status_cxx2017.xml: Add table matching contents of the C++17 standard. * doc/html/*: Regenerate. Committed to master. I'm in the process of updating the C++20 status docs, but the patch isn't ready yet.
commit 57ede05c6a0b443943e312bf205cb79233c9396f Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Apr 21 22:18:51 2020 +0100 libstdc++: Improve C++14 and C++17 status docs This adds a full table of contents for the C++14 and C++17 standards, with status for each part. For C++14 the list of proposals is removed, as it adds little value now that everything is supported. For C++17 the table of proposals is retained, because it documents he feature test macros for the features. * 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/xml/manual/status_cxx2017.xml: Add table matching contents of the C++17 standard. * doc/html/*: Regenerate. diff --git a/libstdc++-v3/doc/Makefile.am b/libstdc++-v3/doc/Makefile.am index 32417d8ee2d..33386db52af 100644 --- a/libstdc++-v3/doc/Makefile.am +++ b/libstdc++-v3/doc/Makefile.am @@ -341,6 +341,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/xml/manual/status_cxx1998.xml b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml index cf5722377a6..792272bcf26 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml @@ -1,4 +1,4 @@ -<section xmlns="http://docbook.org/ns/docbook" version="5.0" +<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="status.iso.1998" xreflabel="ISO C++ 1998"> <?dbhtml filename="status_iso_cxx1998.html"?> @@ -11,14 +11,14 @@ <section xml:id="iso.1998.status" xreflabel="Implementation Status"> -<info><title>Implementation Status</title></info> +<info><title>Implementation Status</title></info> <para> This status table is based on the table of contents of ISO/IEC 14882:2003. </para> <para> -This page describes the C++ support in mainline GCC, not in any +This section describes the C++ support in mainline GCC, not in any particular release. </para> @@ -1030,7 +1030,7 @@ particular release. </section> <section xml:id="iso.1998.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info> - + <para> The ISO standard defines the following phrase: diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 9d2de532f3d..e8f8784c1e9 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -1,4 +1,4 @@ -<section xmlns="http://docbook.org/ns/docbook" version="5.0" +<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="status.iso.2011" xreflabel="Status C++ 2011"> <?dbhtml filename="status_iso_cxx2011.html"?> @@ -27,7 +27,11 @@ presence of the required flag. </para> <para> -This page describes the C++11 support in mainline GCC, not in any +This status table is based on the table of contents of ISO/IEC 14882:2011. +</para> + +<para> +This section describes the C++11 support in mainline GCC, not in any particular release. </para> @@ -71,7 +75,7 @@ particular release. <row> <entry>18.1</entry> <entry>General</entry> - <entry>Y</entry> + <entry/> <entry/> </row> <row> @@ -265,7 +269,7 @@ particular release. <row> <entry>19.1</entry> <entry>General</entry> - <entry>Y</entry> + <entry/> <entry/> </row> <row> @@ -350,13 +354,13 @@ particular release. </row> <row> <entry>20.2.2</entry> - <entry>Swap</entry> + <entry>swap</entry> <entry>Y</entry> <entry/> </row> <row> <entry>20.2.3</entry> - <entry><code>forward</code> and <code>move</code> helpers</entry> + <entry>forward/move helpers</entry> <entry>Y</entry> <entry/> </row> @@ -627,7 +631,7 @@ particular release. <row> <entry>20.7.2</entry> <entry>Shared-ownership pointers</entry> - <entry>Y</entry> + <entry/> <entry/> </row> <row> @@ -653,7 +657,7 @@ particular release. </row> <row> <entry>20.7.2.4</entry> - <entry>Class template <code>emable_shared_from_this</code></entry> + <entry>Class template <code>enable_shared_from_this</code></entry> <entry>Y</entry> <entry/> </row> @@ -1115,9 +1119,7 @@ particular release. <entry>21.7</entry> <entry>Null-terminated sequence utilities</entry> <entry>Partial</entry> - <entry>C library dependency. - Missing <filename class="headerfile"><cuchar></filename> - </entry> + <entry>C library dependency. </entry> </row> <row> <entry> @@ -1636,7 +1638,7 @@ particular release. <row> <entry>26.1</entry> <entry>General</entry> - <entry>Y</entry> + <entry/> <entry/> </row> <row> @@ -1989,31 +1991,31 @@ particular release. </row> <row> <entry>26.7.2</entry> - <entry><code>accumulate</code></entry> + <entry>Accumulate></entry> <entry>Y</entry> <entry/> </row> <row> <entry>26.7.3</entry> - <entry><code>inner_product</code></entry> + <entry>Inner product</entry> <entry>Y</entry> <entry/> </row> <row> <entry>26.7.4</entry> - <entry><code>partial_sum</code></entry> + <entry>Partial sum</entry> <entry>Y</entry> <entry/> </row> <row> <entry>26.7.5</entry> - <entry><code>adjacent_difference</code></entry> + <entry>Adjacent difference</entry> <entry>Y</entry> <entry/> </row> <row> <entry>26.7.6</entry> - <entry>iota</entry> + <entry>Iota</entry> <entry>Y</entry> <entry/> </row> @@ -2231,10 +2233,9 @@ particular release. <entry/> </row> <row> - <?dbhtml bgcolor="#B0B0B0" ?> <entry>29.3</entry> <entry>Order and consistency</entry> - <entry>Partial</entry> + <entry>Y</entry> <entry/> </row> <row> @@ -2397,10 +2398,14 @@ particular release. <entry/> </row> <row> + <?dbhtml bgcolor="#B0B0B0" ?> <entry>30.4.4.2</entry> <entry>Function <code>call_once</code></entry> - <entry>Y</entry> - <entry/> + <entry>Broken</entry> + <entry>See <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR + 66146</link> + </entry> </row> <row> <entry>30.5</entry> @@ -2515,43 +2520,43 @@ particular release. <row> <entry>D.5</entry> <entry>C standard library headers</entry> - <entry/> + <entry>Y</entry> <entry/> </row> <row> <entry>D.6</entry> <entry>Old iostreams members</entry> - <entry/> + <entry>Y</entry> <entry/> </row> <row> <entry>D.7</entry> <entry><code>char*</code> streams</entry> - <entry/> + <entry>Y</entry> <entry/> </row> <row> <entry>D.8</entry> <entry>Function objects</entry> - <entry/> + <entry>Y</entry> <entry/> </row> <row> <entry>D.9</entry> <entry>Binders</entry> - <entry/> + <entry>Y</entry> <entry/> </row> <row> <entry>D.10</entry> <entry><code>auto_ptr</code></entry> - <entry/> + <entry>Y</entry> <entry/> </row> <row> <entry>D.11</entry> <entry>Violating exception-specifications</entry> - <entry/> + <entry>Y</entry> <entry/> </row> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml index a0b900d9a12..0d138abf794 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml @@ -1,4 +1,4 @@ -<section xmlns="http://docbook.org/ns/docbook" version="5.0" +<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="status.iso.2014" xreflabel="Status C++ 2014"> <?dbhtml filename="status_iso_cxx2014.html"?> @@ -20,10 +20,25 @@ presence of the required flag. </para> <para> -This page describes the C++14 and library TS support in mainline GCC, +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. +</para> + +<para> +This section describes the C++14 and library TS support in mainline GCC, not in any particular release. </para> +<!-- Status is Yes or No, Broken/Partial--> +<!-- + Yes + + No + <?dbhtml bgcolor="#C8B0B0" ?> + Broken/Partial + <?dbhtml bgcolor="#B0B0B0" ?> +--> <table frame="all" xml:id="table.cxx14_status"> <title>C++ 2014 Implementation Status</title> @@ -32,10 +47,10 @@ not in any particular release. <colspec colname="c2"/> <colspec colname="c3"/> <colspec colname="c4"/> - <thead> +<thead> <row> - <entry>Paper</entry> - <entry>Title</entry> + <entry>Section</entry> + <entry>Description</entry> <entry>Status</entry> <entry>Comments</entry> </row> @@ -45,211 +60,1502 @@ not in any particular release. <row> <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3669.pdf"> - N3669 - </link> + <emphasis>18</emphasis> </entry> - <entry>Fixing constexpr member functions without const</entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Language support</emphasis> + </entry> + </row> + + <row> + <entry>18.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>18.2</entry> + <entry>Types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.3</entry> + <entry>Implementation properties</entry> + <entry/> + <entry/> + </row> + + <row> + <entry>18.3.2</entry> + <entry>Numeric Limits</entry> + <entry/> + <entry/> + </row> + <row> + <entry>18.3.2.3</entry> + <entry>Class template <code>numeric_limits</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.3.2.4</entry> + <entry><code>numeric_limits</code> members</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#C8B0B0" ?> + <entry>18.3.2.5</entry> + <entry><code>float_round_style</code></entry> + <entry>N</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#C8B0B0" ?> + <entry>18.3.2.6</entry> + <entry><code>float_denorm_style</code></entry> + <entry>N</entry> + <entry/> + </row> + <row> + <entry>18.3.2.7</entry> + <entry><code>numeric_limits</code> specializations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.3.3</entry> + <entry>C Library</entry> <entry>Y</entry> <entry/> </row> <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3668.html"> - N3668 - </link> - </entry> - <entry><code>exchange()</code> utility function</entry> - <entry>Y</entry> + <entry>18.4</entry> + <entry>Integer types</entry> + <entry/> <entry/> </row> - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3670.html"> - N3670 - </link> - </entry> - <entry>Wording for Addressing Tuples by Type</entry> + <entry>18.4.1</entry> + <entry>Header <code><cstdint></code> synopsis</entry> <entry>Y</entry> <entry/> </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3656.htm"> - N3656 - </link> - </entry> - <entry><code>make_unique</code></entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2012/n3462.html"> - N3462 - </link> - </entry> - <entry><code>std::result_of</code> and SFINAE</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3545.pdf"> - N3545 - </link> - </entry> - <entry>An Incremental Improvement to <code>integral_constant</code></entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3642.pdf"> - N3642 - </link> - </entry> - <entry>User-defined Literals for Standard Library Types</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3671.html"> - N3671 - </link> - </entry> - <entry>Making non-modifying sequence operations more robust</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3654.html"> - N3654 - </link> - </entry> - <entry>Quoted Strings Library Proposal</entry> - <entry>Y</entry> - <entry/> - </row> - - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2012/n3469.html"> - N3469 - </link> - </entry> - <entry>Constexpr Library Additions: chrono</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2012/n3470.html"> - N3470 - </link> - </entry> - <entry>Constexpr Library Additions: containers</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2012/n3471.html"> - N3471 - </link> - </entry> - <entry>Constexpr Library Additions: utilities</entry> - <entry>Y</entry> - <entry/> - </row> - - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3658.html"> - N3658 - </link> - </entry> - <entry>Compile-time integer sequences</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3659.html"> - N3659 - </link> - </entry> - <entry>Shared Locking in C++</entry> - <entry>Y</entry> - <entry/> - </row> - - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2012/n3421.htm"> - N3421 - </link> - </entry> - <entry>Making Operator Functors greater<></entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3657.htm"> - N3657 - </link> - </entry> - <entry>Adding heterogeneous comparison lookup to associative containers</entry> - <entry>Y</entry> - <entry/> - </row> - - <row> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3655.pdf"> - N3655 - </link> - </entry> - <entry>TransformationTraits Redux</entry> - <entry>Y</entry> - <entry/> - </row> - <row> <?dbhtml bgcolor="#B0B0B0" ?> - <entry> - <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3644.pdf"> - N3644 - </link> - </entry> - <entry>Null Forward Iterators</entry> + <entry>18.5</entry> + <entry>Start and termination</entry> <entry>Partial</entry> - <entry>Only affects Debug Mode</entry> + <entry>C library dependency for quick_exit, at_quick_exit</entry> + </row> + <row> + <entry>18.6</entry> + <entry>Dynamic memory management</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.7</entry> + <entry>Type identification</entry> + <entry/> + <entry/> + </row> + <row> + <entry>18.7.1</entry> + <entry>Class type_info</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.7.2</entry> + <entry>Class bad_cast</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.7.3</entry> + <entry>Class bad_typeid</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.8</entry> + <entry>Exception handling</entry> + <entry/> + <entry/> + </row> + <row> + <entry>18.8.1</entry> + <entry>Class exception</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.8.2</entry> + <entry>Class bad_exception</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.8.3</entry> + <entry>Abnormal termination</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.8.4</entry> + <entry><code>uncaught_exception</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.8.5</entry> + <entry>Exception Propagation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.8.6</entry> + <entry><code>nested_exception</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.9</entry> + <entry>Initializer lists</entry> + <entry/> + <entry/> + </row> + <row> + <entry>18.9.1</entry> + <entry>Initializer list constructors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.9.2</entry> + <entry>Initializer list access</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.9.3</entry> + <entry>Initializer list range access</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>18.10</entry> + <entry>Other runtime support</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>19</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Diagnostics</emphasis> + </entry> + </row> + <row> + <entry>19.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>19.2</entry> + <entry>Exception classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.3</entry> + <entry>Assertions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.4</entry> + <entry>Error numbers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.5</entry> + <entry>System error support</entry> + <entry/> + <entry/> + </row> + <row> + <entry>19.5.1</entry> + <entry>Class <code>error_category</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.5.2</entry> + <entry>Class <code>error_code</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.5.3</entry> + <entry>Class <code>error_condition</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.5.4</entry> + <entry>Comparison operators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>19.5.5</entry> + <entry>Class <code>system_error</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>20</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>General utilities</emphasis> + </entry> + </row> + <row> + <entry>20.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.2</entry> + <entry>Utility components</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.2.1</entry> + <entry>Operators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.2.2</entry> + <entry>swap</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.2.3</entry> + <entry>exchange</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.2.4</entry> + <entry>forward/move helpers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.2.5</entry> + <entry>Function template <code>declval</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.3</entry> + <entry>Pairs</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.4</entry> + <entry>Tuples</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.5</entry> + <entry>Compile-time integer sequences</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.5.2</entry> + <entry>Class template <code>integer_sequence</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.5.3</entry> + <entry>Alias template <code>make_integer_sequence</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.6</entry> + <entry>Class template <code>bitset</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.7</entry> + <entry>Memory</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8</entry> + <entry>Smart pointers</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.8.1</entry> + <entry>Class template <code>unique_ptr</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.1.1</entry> + <entry>Default deleters</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.1.2</entry> + <entry><code>unique_ptr</code> for single objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.1.3</entry> + <entry><code>unique_ptr</code> for array objects with a runtime length</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.1.4</entry> + <entry><code>unique_ptr</code> creation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.1.5</entry> + <entry><code>unique_ptr</code> specialized algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.2</entry> + <entry>Shared-ownership pointers</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.8.2.1</entry> + <entry>Class <code>bad_weak_ptr</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.2.2</entry> + <entry>Class template <code>shared_ptr</code></entry> + <entry>Y</entry> + <entry> + Uses code from + <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</link>. + </entry> + </row> + <row> + <entry>20.8.2.3</entry> + <entry>Class template <code>weak_ptr</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.2.4</entry> + <entry>Class template <code>owner_less</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.2.5</entry> + <entry>Class template <code>enable_shared_from_this</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.2.6</entry> + <entry><code>shared_ptr</code> atomic access</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.2.7</entry> + <entry>Smart pointer hash support</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9</entry> + <entry>Function objects</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.9.1</entry> + <entry>Definitions</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.9.2</entry> + <entry>Requirements</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.9.3</entry> + <entry>Class template <code>reference_wrapper</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.4</entry> + <entry>Arithmetic operation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.5</entry> + <entry>Comparisons</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.8.6</entry> + <entry>Logical operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.7</entry> + <entry>Bitwise operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.8</entry> + <entry>Negators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.9</entry> + <entry>Function object binders</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.10</entry> + <entry>Function template <code>mem_fn</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.9.11</entry> + <entry>Polymorphic function wrappers</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.9.11.1</entry> + <entry>Class <code>bad_function_call</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>20.9.11.2</entry> + <entry>Class template <code>function</code></entry> + <entry>Partial</entry> + <entry>Missing allocator support</entry> + </row> + <row> + <entry>20.9.12</entry> + <entry>Class template <code>hash</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.10</entry> + <entry>Metaprogramming and type traits</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.10.1</entry> + <entry>Requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.10.2</entry> + <entry>Header <code><type_traits></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.10.3</entry> + <entry>Helper classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.10.4</entry> + <entry>Unary Type Traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.10.5</entry> + <entry>Type property queries</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.10.6</entry> + <entry>Relationships between types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.10.7</entry> + <entry>Transformations between types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.11</entry> + <entry>Compile-time rational arithmetic</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12</entry> + <entry>Time utilities</entry> + <entry/> + <entry/> + </row> + <row> + <entry>20.12.3</entry> + <entry>Clock requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12.4</entry> + <entry>Time-related traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12.5</entry> + <entry>Class template <code>duration</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12.5.8</entry> + <entry>Suffixes for duration literals</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12.6</entry> + <entry>Class template <code>time_point</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12.7</entry> + <entry>Clocks</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.12.8</entry> + <entry>Date and time functions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.13</entry> + <entry>Scoped allocator adaptor</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>20.14</entry> + <entry>Class <code>type_index</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>21</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Strings</emphasis> + </entry> + </row> + <row> + <entry>21.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.2</entry> + <entry>Character traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.3</entry> + <entry>String classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.4</entry> + <entry>Class template <code>basic_string</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.5</entry> + <entry>Numeric Conversions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.6</entry> + <entry>Hash support</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.7</entry> + <entry>Suffixes for <code>basic_string</code> literals</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>21.7</entry> + <entry>Null-terminated sequence utilities</entry> + <entry>Partial</entry> + <entry>C library dependency. </entry> + </row> + <row> + <entry> + <emphasis>22</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Localization</emphasis> + </entry> + </row> + <row> + <entry>22.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.2</entry> + <entry>Header <code><locale></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.3</entry> + <entry>Locales</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.4</entry> + <entry>Standard <code>locale</code> categories</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.5</entry> + <entry>Standard code conversion facets</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.6</entry> + <entry>C Library Locales</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>23</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Containers</emphasis> + </entry> + </row> + <row> + <entry>23.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.2</entry> + <entry>Container requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.3</entry> + <entry>Sequence containers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.4</entry> + <entry>Associative containers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.5</entry> + <entry>Unordered associative containers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.6</entry> + <entry>Container adaptors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>24</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Iterators</emphasis> + </entry> + </row> + <row> + <entry>24.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.2</entry> + <entry>Iterator requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.3</entry> + <entry>Header <code><iterator></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4</entry> + <entry>Iterator primitives</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.5</entry> + <entry>Iterator adaptors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.6</entry> + <entry>Stream iterators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.7</entry> + <entry>range access</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>25</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Algorithms</emphasis> + </entry> + </row> + <row> + <entry>25.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>25.2</entry> + <entry>Non-modifying sequence operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.3</entry> + <entry>Mutating sequence operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.4</entry> + <entry>Sorting and related operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.5</entry> + <entry>C library algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>26</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Numerics</emphasis> + </entry> + </row> + <row> + <entry>26.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>26.2</entry> + <entry>Numeric type requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.3</entry> + <entry>The floating-point environment</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.4</entry> + <entry>Complex numbers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.4.10</entry> + <entry>Suffixes for complex number literals</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.5</entry> + <entry>Random number generation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.6</entry> + <entry>Numeric arrays</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.7</entry> + <entry>Generalized numeric operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.8</entry> + <entry>C Library</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>27</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Input/output library</emphasis> + </entry> + </row> + <row> + <entry>27.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.2</entry> + <entry>Iostreams requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.2.1</entry> + <entry>Imbue Limitations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.2.2</entry> + <entry>Positioning Type Limitations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>27.2.3</entry> + <entry>Thread safety</entry> + <entry>Partial</entry> + <entry/> + </row> + <row> + <entry>27.3</entry> + <entry>Forward declarations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.4</entry> + <entry>Standard iostream objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.5</entry> + <entry>Iostreams base classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.6</entry> + <entry>Stream buffers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.7</entry> + <entry>Formatting and manipulators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.7.6</entry> + <entry>Quoted manipulators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.8</entry> + <entry>String-based streams</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.9</entry> + <entry>File-based streams</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>28</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Regular expressions</emphasis> + </entry> + </row> + <row> + <entry>28.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.2</entry> + <entry>Definitions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.3</entry> + <entry>Requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.4</entry> + <entry>Header <code><regex></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.5</entry> + <entry>Namespace <code>std::regex_constants</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.6</entry> + <entry>Class <code>regex_error</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>28.7</entry> + <entry>Class template <code>regex_traits</code></entry> + <entry>Partial</entry> + <entry><code>transform_primary</code> is not correctly implemented</entry> + <entry/> + </row> + <row> + <entry>28.8</entry> + <entry>Class template <code>basic_regex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.9</entry> + <entry>Class template <code>sub_match</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.10</entry> + <entry>Class template <code>match_results</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.11</entry> + <entry>Regular expression algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.12</entry> + <entry>Regular expression Iterators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.13</entry> + <entry>Modified ECMAScript regular expression grammar</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>29</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Atomic operations</emphasis> + </entry> + </row> + <row> + <entry>29.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.2</entry> + <entry>Header <code><atomic></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.3</entry> + <entry>Order and consistency</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.4</entry> + <entry>Lock-free property</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.5</entry> + <entry>Atomic types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.6</entry> + <entry>Operations on atomic types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.7</entry> + <entry>Flag Type and operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8</entry> + <entry>Fences</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>30</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Thread support</emphasis> + </entry> + </row> + <row> + <entry>30.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.2</entry> + <entry>Requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.3</entry> + <entry>Threads</entry> + <entry/> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>30.3.1</entry> + <entry>Class <code>thread</code></entry> + <entry>Partial</entry> + <entry><code>thread::id</code> comparisons not well-defined</entry> + </row> + <row> + <entry>30.3.2</entry> + <entry>Namespace <code>this_thread</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4</entry> + <entry>Mutual exclusion</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.1</entry> + <entry>Mutex requirements</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.1.1</entry> + <entry>In general</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.1.2</entry> + <entry>Mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.1.2.1</entry> + <entry>Class <code>mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.1.2.2</entry> + <entry>Class <code>recursive_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.1.3</entry> + <entry>Timed mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.1.3.1</entry> + <entry>Class <code>timed_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.1.3.2</entry> + <entry>Class <code>recursive_timed_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.1.4</entry> + <entry>Shared timed mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.1.4.1</entry> + <entry>Class <code>shared_timed_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.2</entry> + <entry>Locks</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.2.1</entry> + <entry>Class template <code>lock_guard</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.2.2</entry> + <entry>Class template <code>unique_lock</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.2.3</entry> + <entry>Class template <code>shared_lock</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.3</entry> + <entry>Generic locking algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4.4</entry> + <entry>Call once</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.4.4.1</entry> + <entry>Struct <code>once_flag</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>30.4.4.2</entry> + <entry>Function <code>call_once</code></entry> + <entry>Broken</entry> + <entry>See <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR + 66146</link> + </entry> + </row> + <row> + <entry>30.5</entry> + <entry>Condition variables</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.5.1</entry> + <entry>Class <code>condition_variable</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.5.2</entry> + <entry>Class <code>condition_variable_any</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6</entry> + <entry>Futures</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.6.1</entry> + <entry>Overview</entry> + <entry/> + <entry/> + </row> + <row> + <entry>30.6.2</entry> + <entry>Error handling</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.3</entry> + <entry>Class <code>future_error</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.4</entry> + <entry>Shared state</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.5</entry> + <entry>Class template <code>promise</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.6</entry> + <entry>Class template <code>future</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.7</entry> + <entry>Class template <code>shared_future</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.8</entry> + <entry>Function template <code>async</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6.9</entry> + <entry>Class template <code>packaged_task</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>Appendix D</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Compatibility features</emphasis> + </entry> + </row> + <row> + <entry>D.1</entry> + <entry>Increment operator with <code>bool</code> operand</entry> + <entry/> + <entry/> + </row> + <row> + <entry>D.2</entry> + <entry><code>register</code> keyword</entry> + <entry/> + <entry/> + </row> + <row> + <entry>D.3</entry> + <entry>Implicit declaration of copy functions</entry> + <entry/> + <entry/> + </row> + <row> + <entry>D.4</entry> + <entry>Dynamic exception specifications</entry> + <entry/> + <entry/> + </row> + <row> + <entry>D.5</entry> + <entry>C standard library headers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.6</entry> + <entry>Old iostreams members</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.7</entry> + <entry><code>char*</code> streams</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.8</entry> + <entry>Function objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.9</entry> + <entry>Binders</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.10</entry> + <entry><code>auto_ptr</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.11</entry> + <entry>Violating exception-specifications</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.12</entry> + <entry>Random shuffle</entry> + <entry>Y</entry> + <entry/> </row> </tbody> </tgroup> </table> - <table frame="all" xml:id="table.ts_status"> <title>C++ Technical Specifications Implementation Status</title> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml index 188c3f88551..0f03126db1c 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml @@ -1,4 +1,4 @@ -<section xmlns="http://docbook.org/ns/docbook" version="5.0" +<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="status.iso.2017" xreflabel="Status C++ 2017"> <?dbhtml filename="status_iso_cxx2017.html"?> @@ -35,8 +35,8 @@ The "SD-6 Feature Test" column shows the corresponding macro or header from Feature-testing recommendations for C++</link>. </para> -<table frame="all" xml:id="table.cxx17_status"> -<title>C++ 2017 Implementation Status</title> +<table frame="all" xml:id="table.cxx17_features"> +<title>C++ 2017 Library Features</title> <tgroup cols="4" align="left" colsep="0" rowsep="1"> <colspec colname="c1"/> @@ -469,7 +469,7 @@ Feature-testing recommendations for C++</link>. </link> </entry> <entry align="center"> 7.1 </entry> - <entry><code> __cpp_lib_is_callable >= 201603 </code></entry> + <entry><code> __cpp_lib_is_invocable >= 201703 </code></entry> </row> <row> @@ -854,6 +854,1865 @@ GCC 7.1 onwards. For GCC 6.x or for C++11/C++14 define and test for <code>__STDCPP_MATH_SPEC_FUNCS__ >= 201003L</code>. </para> + + +<para> +The following status table is based on the table of contents of +ISO/IEC 14882:2017. +Some subclauses are not shown in the table where the content is unchanged +since C++14 and the implementation is complete. +</para> + +<table frame="all" xml:id="table.cxx17_status"> +<title>C++ 2017 Implementation Status</title> + +<tgroup cols="4" align="left" colsep="0" rowsep="1"> +<colspec colname="c1"/> +<colspec colname="c2"/> +<colspec colname="c3"/> +<colspec colname="c4"/> + <thead> + <row> + <entry>Section</entry> + <entry>Description</entry> + <entry>Status</entry> + <entry>Comments</entry> + </row> + </thead> + + <tbody> + + <row> + <entry> + <emphasis>21</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Language support</emphasis> + </entry> + </row> + + <row> + <entry>21.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.2</entry> + <entry>Common definitions</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.3</entry> + <entry>Implementation properties</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.3.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.3.2</entry> + <entry>Header <code><limits></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.3.3</entry> + <entry>Floating-point type properties</entry> + <entry/> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#C8B0B0" ?> + <entry>21.3.3.1</entry> + <entry><code>float_round_style</code></entry> + <entry>N</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#C8B0B0" ?> + <entry>21.3.3.2</entry> + <entry><code>float_denorm_style</code></entry> + <entry>N</entry> + <entry/> + </row> + <row> + <entry>21.3.4</entry> + <entry>Class template <code>numeric_limits</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.3.5</entry> + <entry>Header <code><climits></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.3.6</entry> + <entry>Header <code><cfloat></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.4</entry> + <entry>Integer types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.4.1</entry> + <entry>Header <code><cstdint></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>21.5</entry> + <entry>Start and termination</entry> + <entry>Partial</entry> + <entry>C library dependency for quick_exit, at_quick_exit</entry> + </row> + <row> + <entry>21.6</entry> + <entry>Dynamic memory management</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.6.1</entry> + <entry>Header <code><new></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.6.2</entry> + <entry>Storage allocation and deallocation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.6.3</entry> + <entry>Storage allocation errors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.6.4</entry> + <entry>Pointer optimization barrier</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#C8B0B0" ?> + <entry>21.6.5</entry> + <entry>Hardware interference size</entry> + <entry>N</entry> + <entry/> + </row> + <row> + <entry>21.7</entry> + <entry>Type identification</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.8</entry> + <entry>Exception handling</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.8.1</entry> + <entry>Header <code><exception></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>21.8.2</entry> + <entry>Class exception</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.8.3</entry> + <entry>Class bad_exception</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.8.4</entry> + <entry>Abnormal termination</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.8.5</entry> + <entry><code>uncaught_exceptions</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.8.6</entry> + <entry>Exception Propagation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.8.7</entry> + <entry><code>nested_exception</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.9</entry> + <entry>Initializer lists</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>21.10</entry> + <entry>Other runtime support</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>22</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Diagnostics</emphasis> + </entry> + </row> + <row> + <entry>22.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>22.2</entry> + <entry>Exception classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.3</entry> + <entry>Assertions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.4</entry> + <entry>Error numbers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>22.5</entry> + <entry>System error support</entry> + <entry/> + <entry/> + </row> + <row> + <entry> + <emphasis>23</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>General utilities</emphasis> + </entry> + </row> + <row> + <entry>23.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.2</entry> + <entry>Utility components</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.2.1</entry> + <entry>Header <code><utility></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.2.2</entry> + <entry>Operators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.2.3</entry> + <entry><code>swap</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.2.4</entry> + <entry><code>exchange</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.2.5</entry> + <entry>Forward/move helpers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.2.6</entry> + <entry>Function template <code>as_const</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.2.7</entry> + <entry>Function template <code>declval</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>23.2.8</entry> + <entry>Primitive numeric output conversion</entry> + <entry>Partial</entry> + <entry>Only integer types supported, not floating-point types</entry> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>23.2.9</entry> + <entry>Primitive numeric input conversion</entry> + <entry>Partial</entry> + <entry>Only integer types supported, not floating-point types</entry> + </row> + <row> + <entry>23.3</entry> + <entry>Compile-time integer sequences</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.4</entry> + <entry>Pairs</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.5</entry> + <entry>Tuples</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.6</entry> + <entry>Optional objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.7</entry> + <entry>Variants</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.8</entry> + <entry>Storage for any type</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.9</entry> + <entry>Bitsets</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10</entry> + <entry>Memory</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.1</entry> + <entry>In general</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.10.2</entry> + <entry>Header <code><memory></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.3</entry> + <entry>Pointer traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.4</entry> + <entry>Pointer safety</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.5</entry> + <entry>Align</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.6</entry> + <entry>Allocator argument tag</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.7</entry> + <entry><code>uses_allocator</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.8</entry> + <entry>Allocator traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.9</entry> + <entry>The default allocator</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.10</entry> + <entry>Specialized algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.10.11</entry> + <entry>C library memory allocation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.11</entry> + <entry>Smart pointers</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.11.1</entry> + <entry>Class template <code>unique_ptr</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.11.2</entry> + <entry>Shared-ownership pointers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.12</entry> + <entry>Memory resources</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.12.1</entry> + <entry>Header <code><memory_resource></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.12.2</entry> + <entry>Class <code>memory_resource</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.12.3</entry> + <entry>Class template <code>polymorphic_allocator</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.12.4</entry> + <entry>Access to program-wide <code>memory_resource</code> objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.12.5</entry> + <entry>Pool resource classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.12.6</entry> + <entry>Class <code>monotonic_buffer_resource</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.13</entry> + <entry>Class template <code>scoped_allocator_adaptor</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14</entry> + <entry>Function objects</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.14.1</entry> + <entry>Header <code><functional></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.14.2</entry> + <entry>Definitions</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.14.3</entry> + <entry>Requirements</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.14.4</entry> + <entry>Function template <code>invoke</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.5</entry> + <entry>Class template <code>reference_wrapper</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.6</entry> + <entry>Arithmetic operation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.7</entry> + <entry>Comparisons</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.8</entry> + <entry>Logical operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.9</entry> + <entry>Bitwise operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.10</entry> + <entry>Function template <code>not_fn</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.11</entry> + <entry>Function object binders</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.12</entry> + <entry>Function template <code>mem_fn</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.13</entry> + <entry>Polymorphic function wrappers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.14</entry> + <entry>Searchers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.14.15</entry> + <entry>Class template <code>hash</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15</entry> + <entry>Metaprogramming and type traits</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.15.1</entry> + <entry>Requirements</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.15.2</entry> + <entry>Header <code><type_traits></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15.3</entry> + <entry>Helper classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15.4</entry> + <entry>Unary Type Traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15.5</entry> + <entry>Type property queries</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15.6</entry> + <entry>Relationships between types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15.7</entry> + <entry>Transformations between types</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.15.8</entry> + <entry>Logical operator traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.16</entry> + <entry>Compile-time rational arithmetic</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.17.1</entry> + <entry>In general</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.17.2</entry> + <entry>Header <code><chrono></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.17</entry> + <entry>Time utilities</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.17.3</entry> + <entry>Clock requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.17.4</entry> + <entry>Time-related traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.17.5</entry> + <entry>Class template <code>duration</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.17.6</entry> + <entry>Class template <code>time_point</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.17.7</entry> + <entry>Clocks</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.17.8</entry> + <entry>Header <code><ctime></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.18</entry> + <entry>Class <code>type_index</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.19</entry> + <entry>Execution policies</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.19.1</entry> + <entry>In general</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.19.2</entry> + <entry>Header <code><execution></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>23.19.3</entry> + <entry>Execution policy type trait</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.19.4</entry> + <entry>Sequenced execution policy</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.19.5</entry> + <entry>Parallel execution policy</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.19.6</entry> + <entry>Parallel and unsequenced execution policy</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>23.19.7</entry> + <entry>Execution policy objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>24</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Strings</emphasis> + </entry> + </row> + <row> + <entry>24.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>24.2</entry> + <entry>Character traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.3</entry> + <entry>String classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4</entry> + <entry>String view classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4.1</entry> + <entry>Header <code><string_view></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4.2</entry> + <entry>Class template <code>basic_string_view</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4.3</entry> + <entry>Non-member comparison functions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4.4</entry> + <entry>Inserters and extractors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4.5</entry> + <entry>Hash support</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>24.4.6</entry> + <entry>Suffix for <code>basic_string_view</code> literals</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>24.5</entry> + <entry>Null-terminated sequence utilities</entry> + <entry>Partial</entry> + <entry>C library dependency. </entry> + </row> + <row> + <entry> + <emphasis>25</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Localization</emphasis> + </entry> + </row> + <row> + <entry>25.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.2</entry> + <entry>Header <code><locale></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.3</entry> + <entry>Locales</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.4</entry> + <entry>Standard <code>locale</code> categories</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>25.5</entry> + <entry>C Library Locales</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>26</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Containers</emphasis> + </entry> + </row> + <row> + <entry>26.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>26.2</entry> + <entry>Container requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.3</entry> + <entry>Sequence containers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.4</entry> + <entry>Associative containers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.5</entry> + <entry>Unordered associative containers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>26.6</entry> + <entry>Container adaptors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>27</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Iterators</emphasis> + </entry> + </row> + <row> + <entry>27.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.2</entry> + <entry>Iterator requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.3</entry> + <entry>Header <code><iterator></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.4</entry> + <entry>Iterator primitives</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.5</entry> + <entry>Iterator adaptors</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.6</entry> + <entry>Stream iterators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.7</entry> + <entry>Range access</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>27.8</entry> + <entry>Container access</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>28</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Algorithms</emphasis> + </entry> + </row> + <row> + <entry>28.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>28.2</entry> + <entry>Header <code><algorithm></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>28.3</entry> + <entry>Algorithms requirements</entry> + <entry/> + <entry/> + </row> + <row> + <entry>28.4</entry> + <entry>Parallel algorithms</entry> + <entry/> + <entry>Using <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/intel/parallelstl">PSTL</link></entry> + </row> + <row> + <entry>28.5</entry> + <entry>Non-modifying sequence operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.6</entry> + <entry>Mutating sequence operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.7</entry> + <entry>Sorting and related operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>28.8</entry> + <entry>C library algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>29</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Numerics</emphasis> + </entry> + </row> + <row> + <entry>29.1</entry> + <entry>General</entry> + <entry/> + <entry/> + </row> + <row> + <entry>29.2</entry> + <entry>Definitions</entry> + <entry/> + <entry/> + </row> + <row> + <entry>29.3</entry> + <entry>Numeric type requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.4</entry> + <entry>The floating-point environment</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.5</entry> + <entry>Complex numbers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.6</entry> + <entry>Random number generation</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.7</entry> + <entry>Numeric arrays</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8</entry> + <entry>Generalized numeric operations</entry> + <entry/> + <entry/> + </row> + <row> + <entry>29.8.1</entry> + <entry>Header <code><numeric></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>29.8.2</entry> + <entry>Accumulate</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.3</entry> + <entry>Reduce</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.4</entry> + <entry>Inner product</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.5</entry> + <entry>Transform reduce</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.6</entry> + <entry>Partial sum</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.7</entry> + <entry>Exclusive scan</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.8</entry> + <entry>Inclusive scan</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.9</entry> + <entry>Transform exclusive scan</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.10</entry> + <entry>Transform inclusive scan</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.11</entry> + <entry>Adjacent difference</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.12</entry> + <entry>Iota</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.13</entry> + <entry>Greatest common divisor</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.8.14</entry> + <entry>Least common multiple</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.9</entry> + <entry>Mathematical functions for floating-point types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>29.9.1</entry> + <entry>Header <code><cmath></code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>29.9.2</entry> + <entry>Absolute values</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.9.3</entry> + <entry>Three-dimensional hypotenuse</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.9.4</entry> + <entry>Classification / comparison functions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>29.9.5</entry> + <entry>Mathematical special functions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>30</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Input/output library</emphasis> + </entry> + </row> + <row> + <entry>30.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.2</entry> + <entry>Iostreams requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.2.1</entry> + <entry>Imbue Limitations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.2.2</entry> + <entry>Positioning Type Limitations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>30.2.3</entry> + <entry>Thread safety</entry> + <entry>Partial</entry> + <entry/> + </row> + <row> + <entry>30.3</entry> + <entry>Forward declarations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.4</entry> + <entry>Standard iostream objects</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.5</entry> + <entry>Iostreams base classes</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.6</entry> + <entry>Stream buffers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.7</entry> + <entry>Formatting and manipulators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.8</entry> + <entry>String-based streams</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.9</entry> + <entry>File-based streams</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.10</entry> + <entry>File systemss</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>30.11</entry> + <entry>C library files</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>31</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Regular expressions</emphasis> + </entry> + </row> + <row> + <entry>31.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.2</entry> + <entry>Definitions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.3</entry> + <entry>Requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.4</entry> + <entry>Header <code><regex></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.5</entry> + <entry>Namespace <code>std::regex_constants</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.6</entry> + <entry>Class <code>regex_error</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>31.7</entry> + <entry>Class template <code>regex_traits</code></entry> + <entry>Partial</entry> + <entry><code>transform_primary</code> is not correctly implemented</entry> + <entry/> + </row> + <row> + <entry>31.8</entry> + <entry>Class template <code>basic_regex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.9</entry> + <entry>Class template <code>sub_match</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.10</entry> + <entry>Class template <code>match_results</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.11</entry> + <entry>Regular expression algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.12</entry> + <entry>Regular expression Iterators</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>31.13</entry> + <entry>Modified ECMAScript regular expression grammar</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>32</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Atomic operations</emphasis> + </entry> + </row> + <row> + <entry>32.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.2</entry> + <entry>Header <code><atomic></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.3</entry> + <entry>Type aliases</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.4</entry> + <entry>Order and consistency</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.5</entry> + <entry>Lock-free property</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.6</entry> + <entry>Class template <code><atomic></code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.7</entry> + <entry>Non-member functions</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.8</entry> + <entry>Flag Type and operations</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>32.9</entry> + <entry>Fences</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>33</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Thread support</emphasis> + </entry> + </row> + <row> + <entry>33.1</entry> + <entry>General</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.2</entry> + <entry>Requirements</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.3</entry> + <entry>Threads</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.3.1</entry> + <entry>Header <code>thread</code> synopsis</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.3.2</entry> + <entry>Class <code>thread</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>33.3.2.1</entry> + <entry>Class <code>thread</code></entry> + <entry>Partial</entry> + <entry><code>thread::id</code> comparisons not well-defined</entry> + </row> + <row> + <entry>33.3.3</entry> + <entry>Namespace <code>this_thread</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4</entry> + <entry>Mutual exclusion</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3</entry> + <entry>Mutex requirements</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3.1</entry> + <entry>In general</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3.2</entry> + <entry>Mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3.2.1</entry> + <entry>Class <code>mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.3.2.2</entry> + <entry>Class <code>recursive_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.3.3</entry> + <entry>Timed mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3.3.1</entry> + <entry>Class <code>timed_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.3.3.2</entry> + <entry>Class <code>recursive_timed_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.3.4</entry> + <entry>Shared mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3.4.1</entry> + <entry>Class <code>shared_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.3.5</entry> + <entry>Shared timed mutex types</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.3.5.1</entry> + <entry>Class <code>shared_timed_mutex</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.4</entry> + <entry>Locks</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.4.1</entry> + <entry>Class template <code>lock_guard</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.4.2</entry> + <entry>Class template <code>scoped_guard</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.4.3</entry> + <entry>Class template <code>unique_lock</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.4.4</entry> + <entry>Class template <code>shared_lock</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.5</entry> + <entry>Generic locking algorithms</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.4.6</entry> + <entry>Call once</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.4.6.1</entry> + <entry>Struct <code>once_flag</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <?dbhtml bgcolor="#B0B0B0" ?> + <entry>33.4.6.2</entry> + <entry>Function <code>call_once</code></entry> + <entry>Broken</entry> + <entry>See <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR + 66146</link> + </entry> + </row> + <row> + <entry>33.5</entry> + <entry>Condition variables</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.5.1</entry> + <entry>Class <code>condition_variable</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.5.2</entry> + <entry>Class <code>condition_variable_any</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6</entry> + <entry>Futures</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.6.1</entry> + <entry>Overview</entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.6.2</entry> + <entry>Header <code><future></code></entry> + <entry/> + <entry/> + </row> + <row> + <entry>33.6.3</entry> + <entry>Error handling</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.4</entry> + <entry>Class <code>future_error</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.5</entry> + <entry>Shared state</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.6</entry> + <entry>Class template <code>promise</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.7</entry> + <entry>Class template <code>future</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.8</entry> + <entry>Class template <code>shared_future</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.9</entry> + <entry>Function template <code>async</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>33.6.10</entry> + <entry>Class template <code>packaged_task</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry> + <emphasis>Appendix D</emphasis> + </entry> + <entry namest="c2" nameend="c4" align="left"> + <emphasis>Compatibility features</emphasis> + </entry> + </row> + <row> + <entry>D.4</entry> + <entry>C++ standard library headers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.4.1</entry> + <entry>Header <code><ccomplex></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.4.1</entry> + <entry>Header <code><cstdalign></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.4.1</entry> + <entry>Header <code><cstdbool></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.4.1</entry> + <entry>Header <code><ctgmath></code> synopsis</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.5</entry> + <entry>C standard library headers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.6</entry> + <entry><code>char*</code> streams</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.7</entry> + <entry><code>uncaught_exception</code></entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.8</entry> + <entry>Old adaptable function bindings</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.9</entry> + <entry>The default allocator</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.10</entry> + <entry>Raw storage iterator</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.11</entry> + <entry>Temporary buffers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.12</entry> + <entry>Deprecated type traits</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.13</entry> + <entry>Deprecated iterator primitives</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.14</entry> + <entry>Deprecated <code>shared_ptr</code> observers</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.15</entry> + <entry>Deprecated standard code conversion facets</entry> + <entry>Y</entry> + <entry/> + </row> + <row> + <entry>D.16</entry> + <entry>Deprecated convenience conversion interfaces</entry> + <entry>Y</entry> + <entry/> + </row> + + </tbody> +</tgroup> +</table> + <table frame="all" xml:id="table.cxx17_ts_status"> <title>C++ Technical Specifications Implementation Status</title>