summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-04-23 21:39:33 +0100
committerJonathan Wakely <jwakely@redhat.com>2020-04-23 21:39:33 +0100
commitbe0363c80f7ac93f1dbd00da6beb9ce0eed96d9d (patch)
treeb5a4538099f30b1de0a65cd67aaf938f010e08dc /libstdc++-v3
parent40541efe1c063e9ce894b5f11ff727e4aec56e8b (diff)
libstdc++: Update C++20 library status docs
This reorganises the C++20 status table, grouping the proposals by category. It also adds more proposals, and documents all the feature test macros for C++20 library changes. * doc/xml/manual/status_cxx2020.xml: Update C++20 status table. * doc/html/*: Regenerate.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog3
-rw-r--r--libstdc++-v3/doc/html/index.html2
-rw-r--r--libstdc++-v3/doc/html/manual/index.html4
-rw-r--r--libstdc++-v3/doc/html/manual/intro.html2
-rw-r--r--libstdc++-v3/doc/html/manual/status.html780
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx2020.xml1378
6 files changed, 1141 insertions, 1028 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 7ce32b9348b..7cca91e090b 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
2020-04-23 Jonathan Wakely <jwakely@redhat.com>
+ * doc/xml/manual/status_cxx2020.xml: Update C++20 status table.
+ * doc/html/*: Regenerate.
+
* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert
value for C++17 to 201803L because P0858R0 is supported for C++17.
* include/std/version (__cpp_lib_array_constexpr): Likewise.
diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index 46475208895..930b352f0c2 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -23,7 +23,7 @@
</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I.
Introduction
-</a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="manual/status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2020">C++ 202a</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2020.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/std_contents.html">II.
+</a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="manual/status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/std_contents.html">II.
Standard Contents
</a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/support.html">4.
Support
diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html
index 74bfb5da4b7..3c13646addd 100644
--- a/libstdc++-v3/doc/html/manual/index.html
+++ b/libstdc++-v3/doc/html/manual/index.html
@@ -4,7 +4,7 @@
</p></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="part"><a href="intro.html">I.
Introduction
-</a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 202a</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2020.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="std_contents.html">II.
+</a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="std_contents.html">II.
Standard Contents
</a></span></dt><dd><dl><dt><span class="chapter"><a href="support.html">4.
Support
@@ -149,7 +149,7 @@ Support for C++11 dialect.
</a></dt><dt>21.10. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.3.3.23">Non-unique Mapping Containers</a></dt><dt>21.11. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.3.5">Point Iterator Hierarchy</a></dt><dt>21.12. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.4.5">Invalidation Guarantee Tags Hierarchy</a></dt><dt>21.13. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.5.7.4">Container Tag Hierarchy</a></dt><dt>21.14. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.3">Hash functions, ranged-hash functions, and
range-hashing functions</a></dt><dt>21.15. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.4">Insert hash sequence diagram</a></dt><dt>21.16. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.6">Insert hash sequence diagram with a null policy</a></dt><dt>21.17. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.5.5">Hash policy class diagram</a></dt><dt>21.18. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.4.7">Balls and bins</a></dt><dt>21.19. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.6">Insert resize sequence diagram</a></dt><dt>21.20. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.9">Standard resize policy trigger sequence
diagram</a></dt><dt>21.21. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.10">Standard resize policy size sequence
- diagram</a></dt><dt>21.22. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.5">Tree node invariants</a></dt><dt>21.23. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.8">Tree node invalidation</a></dt><dt>21.24. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.3">A tree and its update policy</a></dt><dt>21.25. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.8">Restoring node invariants</a></dt><dt>21.26. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.10">Insert update sequence</a></dt><dt>21.27. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.20">Useless update path</a></dt><dt>21.28. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.2.10">A PATRICIA trie</a></dt><dt>21.29. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.3.5">A trie and its update policy</a></dt><dt>21.30. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.3">A simple list</a></dt><dt>21.31. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.6">The counter algorithm</a></dt><dt>21.32. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.3.3">Underlying Priority-Queue Data-Structures.</a></dt><dt>21.33. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.4.4">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#fig.build_hacking.deps">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#table.cxx98_status">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#table.cxx11_status">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#table.cxx14_status">C++ 2014 Implementation Status</a></dt><dt>1.4. <a href="status.html#table.ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.5. <a href="status.html#table.cxx17_features">C++ 2017 Library Features</a></dt><dt>1.6. <a href="status.html#table.cxx17_status">C++ 2017 Implementation Status</a></dt><dt>1.7. <a href="status.html#table.cxx17_ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.8. <a href="status.html#table.cxx20_status">C++ 2020 Implementation Status</a></dt><dt>1.9. <a href="status.html#table.tr1_status">C++ TR1 Implementation Status</a></dt><dt>1.10. <a href="status.html#table.decfp_status">C++ TR 24733 Implementation Status</a></dt><dt>1.11. <a href="status.html#table.specfun_status">C++ Special Functions Implementation Status</a></dt><dt>3.1. <a href="using.html#table.cmd_options">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#table.cxx98_headers">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#table.cxx98_cheaders">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#table.cxx98_deprheaders">C++ 1998 Deprecated Library Header</a></dt><dt>3.5. <a href="using_headers.html#table.cxx11_headers">C++ 2011 Library Headers</a></dt><dt>3.6. <a href="using_headers.html#table.cxx11_cheaders">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.7. <a href="using_headers.html#table.cxx14_headers">C++ 2014 Library Header</a></dt><dt>3.8. <a href="using_headers.html#table.cxx17_headers">C++ 2017 Library Headers</a></dt><dt>3.9. <a href="using_headers.html#table.cxx20_headers">C++ 2020 Library Headers</a></dt><dt>3.10. <a href="using_headers.html#table.cxx20_deprheaders">C++ 2020 Obsolete Headers</a></dt><dt>3.11. <a href="using_headers.html#table.filesystemts_headers">File System TS Header</a></dt><dt>3.12. <a href="using_headers.html#table.libfundts_headers">Library Fundamentals TS Headers</a></dt><dt>3.13. <a href="using_headers.html#table.tr1_headers">C++ TR 1 Library Headers</a></dt><dt>3.14. <a href="using_headers.html#table.tr1_cheaders">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.15. <a href="using_headers.html#table.decfp_headers">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.16. <a href="using_headers.html#table.abi_headers">C++ ABI Headers</a></dt><dt>3.17. <a href="using_headers.html#table.ext_headers">Extension Headers</a></dt><dt>3.18. <a href="using_headers.html#table.debug_headers">Extension Debug Headers</a></dt><dt>3.19. <a href="using_headers.html#table.parallel_headers">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#table.debug_mode_containers">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#table.debug_mode_containers_cxx11">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#table.parallel_algos">Parallel Algorithms</a></dt><dt>20.1. <a href="bitmap_allocator_impl.html#table.bitmap_alloc">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#table.doxygen_prereq">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#table.doxygen_cmp">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#table.docbook_prereq">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#table.docbook_cmp">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#table.docbook_elem">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#table.extension_allocators">Extension Allocators</a></dt><dt>B.7. <a href="api.html#table.extension_allocators2">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>21.1. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.15">Ranged Hash Function</a></dt><dt>21.2. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.3">Range-Hashing, Division Method</a></dt><dt>21.3. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.9">Division via Prime Modulo</a></dt><dt>21.4. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.11">Division via Bit Mask</a></dt><dt>21.5. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.7">
+ diagram</a></dt><dt>21.22. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.5">Tree node invariants</a></dt><dt>21.23. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.8">Tree node invalidation</a></dt><dt>21.24. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.3">A tree and its update policy</a></dt><dt>21.25. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.8">Restoring node invariants</a></dt><dt>21.26. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.10">Insert update sequence</a></dt><dt>21.27. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.20">Useless update path</a></dt><dt>21.28. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.2.10">A PATRICIA trie</a></dt><dt>21.29. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.3.5">A trie and its update policy</a></dt><dt>21.30. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.3">A simple list</a></dt><dt>21.31. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.6">The counter algorithm</a></dt><dt>21.32. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.3.3">Underlying Priority-Queue Data-Structures.</a></dt><dt>21.33. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.4.4">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#fig.build_hacking.deps">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#table.cxx98_status">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#table.cxx11_status">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#table.cxx14_status">C++ 2014 Implementation Status</a></dt><dt>1.4. <a href="status.html#table.ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.5. <a href="status.html#table.cxx17_features">C++ 2017 Library Features</a></dt><dt>1.6. <a href="status.html#table.cxx17_status">C++ 2017 Implementation Status</a></dt><dt>1.7. <a href="status.html#table.cxx17_ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.8. <a href="status.html#table.cxx20_features">C++ 2020 Library Features</a></dt><dt>1.9. <a href="status.html#table.tr1_status">C++ TR1 Implementation Status</a></dt><dt>1.10. <a href="status.html#table.decfp_status">C++ TR 24733 Implementation Status</a></dt><dt>1.11. <a href="status.html#table.specfun_status">C++ Special Functions Implementation Status</a></dt><dt>3.1. <a href="using.html#table.cmd_options">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#table.cxx98_headers">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#table.cxx98_cheaders">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#table.cxx98_deprheaders">C++ 1998 Deprecated Library Header</a></dt><dt>3.5. <a href="using_headers.html#table.cxx11_headers">C++ 2011 Library Headers</a></dt><dt>3.6. <a href="using_headers.html#table.cxx11_cheaders">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.7. <a href="using_headers.html#table.cxx14_headers">C++ 2014 Library Header</a></dt><dt>3.8. <a href="using_headers.html#table.cxx17_headers">C++ 2017 Library Headers</a></dt><dt>3.9. <a href="using_headers.html#table.cxx20_headers">C++ 2020 Library Headers</a></dt><dt>3.10. <a href="using_headers.html#table.cxx20_deprheaders">C++ 2020 Obsolete Headers</a></dt><dt>3.11. <a href="using_headers.html#table.filesystemts_headers">File System TS Header</a></dt><dt>3.12. <a href="using_headers.html#table.libfundts_headers">Library Fundamentals TS Headers</a></dt><dt>3.13. <a href="using_headers.html#table.tr1_headers">C++ TR 1 Library Headers</a></dt><dt>3.14. <a href="using_headers.html#table.tr1_cheaders">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.15. <a href="using_headers.html#table.decfp_headers">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.16. <a href="using_headers.html#table.abi_headers">C++ ABI Headers</a></dt><dt>3.17. <a href="using_headers.html#table.ext_headers">Extension Headers</a></dt><dt>3.18. <a href="using_headers.html#table.debug_headers">Extension Debug Headers</a></dt><dt>3.19. <a href="using_headers.html#table.parallel_headers">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#table.debug_mode_containers">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#table.debug_mode_containers_cxx11">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#table.parallel_algos">Parallel Algorithms</a></dt><dt>20.1. <a href="bitmap_allocator_impl.html#table.bitmap_alloc">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#table.doxygen_prereq">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#table.doxygen_cmp">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#table.docbook_prereq">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#table.docbook_cmp">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#table.docbook_elem">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#table.extension_allocators">Extension Allocators</a></dt><dt>B.7. <a href="api.html#table.extension_allocators2">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>21.1. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.15">Ranged Hash Function</a></dt><dt>21.2. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.3">Range-Hashing, Division Method</a></dt><dt>21.3. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.9">Division via Prime Modulo</a></dt><dt>21.4. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.11">Division via Bit Mask</a></dt><dt>21.5. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.7">
A Standard String Hash Function
</a></dt><dt>21.6. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.12">
Only k String DNA Hash
diff --git a/libstdc++-v3/doc/html/manual/intro.html b/libstdc++-v3/doc/html/manual/intro.html
index f59b8117fd0..b1d360a51fd 100644
--- a/libstdc++-v3/doc/html/manual/intro.html
+++ b/libstdc++-v3/doc/html/manual/intro.html
@@ -5,4 +5,4 @@
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"></a>Part I. 
Introduction
<a id="id-1.3.3.1.1.1" class="indexterm"></a>
-</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 202a</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2020.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html> \ No newline at end of file
+</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html> \ No newline at end of file
diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html
index e0583a8de6f..b2716d05865 100644
--- a/libstdc++-v3/doc/html/manual/status.html
+++ b/libstdc++-v3/doc/html/manual/status.html
@@ -2,7 +2,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I.  Introduction" /><link rel="prev" href="intro.html" title="Part I.  Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I. 
Introduction
-</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 202a</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2020.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
+</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
This status table is based on the table of contents of ISO/IEC 14882:2003.
</p><p>
This section describes the C++ support in mainline GCC, not in any
@@ -1083,7 +1083,7 @@ since C++14 and the implementation is complete.
</p><p>
<span class="emphasis"><em>30.10.15.4 [fs.op.file_size]</em></span>
If <code class="code">!is_regular_file(p)</code>, an error is reported.
- </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2020"></a>C++ 202a</h3></div></div></div><p>
+ </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2020"></a>C++ 2020</h3></div></div></div><p>
In this implementation the <code class="literal">-std=gnu++2a</code> or
<code class="literal">-std=c++2a</code> flag must be used to enable language
and library
@@ -1096,483 +1096,451 @@ This section describes the C++20 and library TS support in mainline GCC,
not in any particular release.
</p><p>
The following table lists new library features that have been accepted into
-the C++2a working draft. The "Proposal" column provides a link to the
+the C++20 working draft. The "Proposal" column provides a link to the
ISO C++ committee proposal that describes the feature, while the "Status"
column indicates the first version of GCC that contains an implementation of
this feature (if it has been implemented).
-The "SD-6 Feature Test" column shows the corresponding macro or header from
+A dash (—) in the status column indicates that the changes in the proposal
+either do not affect the code in libstdc++, or the changes are not required for conformance.
+The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from
<a class="link" href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target="_top">SD-6:
-Feature-testing recommendations for C++</a>.
-</p><div class="table"><a id="table.cxx20_status"></a><p class="title"><strong>Table 1.8. C++ 2020 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Library Feature</th><th align="left">Proposal</th><th align="left">Status</th><th align="left">SD-6 Feature Test</th></tr></thead><tbody><tr><td align="left"> Endian just Endian </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html" target="_top">
- P0463R1
- </a>
- </td><td align="center"> 8.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending <code class="code">make_shared</code> to Support Arrays </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html" target="_top">
- P0674R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Floating Point Atomic </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html" target="_top">
- P0020R6
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> C++ Synchronized Buffered Ostream </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf" target="_top">
- P0053R7
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Add constexpr modifiers to functions in <code class="code">&lt;algorithm&gt;</code> and <code class="code">&lt;utility&gt;</code> Headers </td><td align="left">
+Feature-testing recommendations for C++</a> (where applicable)
+or any notes about the implementation.
+</p><div class="table"><a id="table.cxx20_features"></a><p class="title"><strong>Table 1.8. C++ 2020 Library Features</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Library Features" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Library Feature</th><th align="left">Proposal</th><th align="left">Status</th><th align="left">SD-6 Feature Test / Notes</th></tr></thead><tbody><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Compile-time programming</strong></span>
+ </td></tr><tr><td align="left"> Add constexpr modifiers to functions in <code class="code">&lt;algorithm&gt;</code> and <code class="code">&lt;utility&gt;</code> Headers </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html" target="_top">
- P0202R3
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms &gt;= 201703L</code> </td></tr><tr><td align="left"> Constexpr for <code class="code">std::complex</code> </td><td align="left">
+ P0202R3 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms &gt;= 201703L</code> </td></tr><tr><td align="left"> Constexpr for <code class="code">swap</code> and swap related functions </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html" target="_top">
+ P0879R0 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms &gt;= 201806L</code> </td></tr><tr><td align="left"> Constexpr for <code class="code">std::complex</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html" target="_top">
- P0415R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Make <code class="code">std::memory_order</code> a scoped enumeration </td><td align="left">
+ P0415R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_complex &gt;= 201711L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> P0595R2 <code class="code">std::is_constant_evaluated()</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html" target="_top">
+ P0595R2 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_is_constant_evaluated &gt;= 201811L</code> </td></tr><tr><td align="left"> More constexpr containers </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html" target="_top">
+ P0784R7 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_dynamic_alloc &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Making <code class="code">std::string</code> constexpr </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf" target="_top">
+ P0980R1 </a>
+ </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_constexpr_string &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Making <code class="code">std::vector</code> constexpr </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf" target="_top">
+ P1004R2 </a>
+ </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_constexpr_vector &gt;= 201907L</code> </td></tr><tr><td align="left"> Constexpr in <code class="code">std::pointer_traits</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf" target="_top">
+ P1006R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_memory &gt;= 201811L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> constexpr for <code class="code">&lt;numeric&gt;</code> algorithms </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1645r1.html" target="_top">
+ P1645R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_numeric &gt;= 201911L</code> </td></tr><tr><td align="left"> Constexpr iterator requirements </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html" target="_top">
+ P0858R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left">
+ <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_array_constexpr &gt;= 201803L</code> </td></tr><tr><td> <code class="code">__cpp_lib_string_view &gt;= 201803L</code> </td></tr><tr><td> (both since 9.4, see Note 1) </td></tr></tbody></table></div>
+ </td></tr><tr><td align="left"> <code class="code">constexpr</code> comparison operators for <code class="code">std::array</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf" target="_top">
+ P1023R0 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_array_constexpr &gt;= 201806</code> </td></tr><tr><td align="left"> Misc constexpr bits </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html" target="_top">
+ P1032R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left">
+ <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_array_constexpr &gt;= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_functional &gt;= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_iterator &gt;= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_string_view &gt;= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_tuple &gt;= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_utility &gt;= 201811L</code> </td></tr></tbody></table></div>
+ </td></tr><tr><td align="left"> <code class="code">constexpr <span class="emphasis"><em>INVOKE</em></span></code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html" target="_top">
+ P1065R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_functional &gt;= 201907L</code> </td></tr><tr><td align="left"> Transformation Trait <code class="code">remove_cvref</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf" target="_top">
+ P0550R2 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_remove_cvref &gt;= 201711L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Implicit conversion traits and utility functions </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html" target="_top">
+ P0758R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_is_nothrow_convertible &gt;= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> The <code class="code">identity</code> metafunction </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf" target="_top">
+ P0887R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_type_identity &gt;= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> <code class="code">unwrap_ref_decay</code> and <code class="code">unwrap_reference</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf" target="_top">
+ P0318R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_unwrap_ref &gt;= 201811L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Improving Completeness Requirements for Type Traits </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf" target="_top">
+ P1285R0 </a>
+ </td><td align="center"> Partial </td><td align="left"> </td></tr><tr><td align="left"> Missing feature test macros </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html" target="_top">
+ P1353R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Making std::underlying_type SFINAE-friendly </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html" target="_top">
+ P0340R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Traits for [Un]bounded Arrays </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf" target="_top">
+ P1357R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bounded_array_traits &gt;= 201902L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Layout-compatibility and pointer-interconvertibility traits </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0466r5.pdf" target="_top">
+ P0466R5 </a>
+ </td><td align="center"> </td><td align="left">
+ <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_is_layout_compatible &gt;= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_is_pointer_interconvertible &gt;= 201907L</code> </td></tr></tbody></table></div>
+ </td></tr><tr><td align="left"> Integrating feature-test macros into the C++ WD </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html" target="_top">
+ P0941R2 </a>
+ </td><td align="center"> 5.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">&lt;version&gt;</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf" target="_top">
+ P0754R2 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__has_include(&lt;version&gt;)</code> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Synchronization</strong></span>
+ </td></tr><tr><td align="left"> Atomic Ref </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html" target="_top">
+ P0019R8 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_ref &gt;= 201806L</code> </td></tr><tr><td align="left"> Floating Point Atomic </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html" target="_top">
+ P0020R6 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_float &gt;= 201711L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> C++ Synchronized Buffered Ostream </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf" target="_top">
+ P0053R7 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_syncbuf &gt;= 201711L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Manipulators for C++ Synchronized Buffered Ostream </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf" target="_top">
+ P0753R2 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_syncbuf &gt;= 201803L</code> </td></tr><tr><td align="left"> Make <code class="code">std::memory_order</code> a scoped enumeration </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html" target="_top">
- P0439R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> String Prefix and Suffix Checking </td><td align="left">
+ P0439R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html" target="_top">
+ P0528R3 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Atomic <code class="code">shared_ptr</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html" target="_top">
+ P0718R2 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code"> __cpp_lib_atomic_shared_ptr &gt;= 201711L</code> </td></tr><tr><td align="left"> std::stop_token and std::jthread </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf" target="_top">
+ P0660R10 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_jthread &gt;= 201907L</code> </td></tr><tr><td align="left"> Rename <code class="code">condition_variable_any</code> interruptible wait methods </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1869r1.html" target="_top">
+ P1869R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_jthread &gt;= 201911L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Atomic waiting and notifying, std::semaphore, std::latch and std::barrier </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html" target="_top">
+ P1135R6 </a>
+ </td><td align="center"> </td><td align="left">
+ <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_atomic_lock_free_type_aliases &gt;= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_atomic_flag_test &gt;= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_atomic_wait &gt;= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_semaphore &gt;= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_latch &gt;= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_barrier &gt;= 201907L</code> </td></tr></tbody></table></div>
+ </td></tr><tr><td align="left"> Fixing Atomic Initialization </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0883r2.pdf" target="_top">
+ P0883R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_value_initialization &gt;= 201911L</code> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Ranges and Concepts</strong></span>
+ </td></tr><tr><td align="left"> Standard Library Concepts </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf" target="_top">
+ P0898R3 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts &gt;= 201806L</code> </td></tr><tr><td align="left"> Rename concepts to standard_case for C++20, while we still can </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r1.pdf" target="_top">
+ P1754R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts &gt;= 201907L</code> </td></tr><tr><td align="left"> Wording for <span class="emphasis"><em><code class="code">boolean-testable</code></em></span> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1964r2.html" target="_top">
+ P1964R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts &gt;= 202002L</code> </td></tr><tr><td align="left"> The One Ranges Proposal </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf" target="_top">
+ P0896R4 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ranges &gt;= 201811L</code> </td></tr><tr><td align="left"> Input Range Adaptors </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1035r7.pdf" target="_top">
+ P1035R7 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ranges &gt;= 201907L</code> </td></tr><tr><td align="left"> <code class="code">ranges</code> compare algorithm are over-constrained </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1716r3.html" target="_top">
+ P1716R3 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ranges &gt;= 201911L</code> </td></tr><tr><td align="left"> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html" target="_top">
+ P1248R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Ranges Design Cleanup </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf" target="_top">
+ P1252R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Time, dates, calendars, time zones</strong></span>
+ </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending chrono to Calendars and Time Zones </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html" target="_top">
+ P0355R7 </a>
+ </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono &gt;= 201803L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Miscellaneous minor fixes for chrono </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html" target="_top">
+ P1466R3 </a>
+ </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono &gt;= 201907L</code> </td></tr><tr><td align="left"> <code class="code">&lt;chrono&gt;</code> <code class="code">zero()</code>, <code class="code">min()</code>, and <code class="code">max()</code> should be <code class="code">noexcept</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf" target="_top">
+ P0972R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Three-way comparison</strong></span>
+ </td></tr><tr><td align="left"> Library Support for the Spaceship (Comparison) Operator </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf" target="_top">
+ P0768R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_three_way_comparison &gt;= 201711L</code> </td></tr><tr><td align="left"> Symmetry for spaceship </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html" target="_top">
+ P0905R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Adding &lt;=&gt; to the standard library </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html" target="_top">
+ P1614R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left">
+ <code class="code">__cpp_lib_three_way_comparison &gt;= 201907L</code>
+ </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Strings and text</strong></span>
+ </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">string::reserve</code> Should Not Shrink </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html" target="_top">
+ P0966R1 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">char8_t</code>: A type for UTF-8 characters and strings </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html" target="_top">
+ P0482R6 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201811L</code> </td></tr><tr><td align="left"> <code class="code">char8_t</code> backward compatibility remediation </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html" target="_top">
+ P1423R3 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Text formatting </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html" target="_top">
+ P0645R10 </a>
+ </td><td align="center"> </td><td align="left">
+ <code class="code">__cpp_lib_format &gt;= 201907L</code>
+ </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Integration of chrono with text formatting </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf" target="_top">
+ P1361R2 </a>
+ </td><td align="center"> </td><td align="left">
+ <code class="code">__cpp_lib_format &gt;= 201907L</code>
+ </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Printf corner cases in <code class="code">std::format</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html" target="_top">
+ P1652R1 </a>
+ </td><td align="center"> </td><td align="left">
+ <code class="code">__cpp_lib_format &gt;= 201907L</code>
+ </td></tr><tr><td align="left"> String Prefix and Suffix Checking </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html" target="_top">
- P0457R2
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Transformation Trait <code class="code">remove_cvref</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf" target="_top">
- P0550R2
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">nodiscard</code> in the Library </td><td align="left">
+ P0457R2 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_starts_ends_with &gt;= 201711L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Update The Reference To The Unicode Standard </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html" target="_top">
+ P1025R1 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Containers</strong></span>
+ </td></tr><tr><td align="left"> span: bounds-safe views for sequences of objects </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf" target="_top">
+ P0122R7 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span &gt;= 201803L</code> </td></tr><tr><td align="left">
+ Usability Enhancements for <code class="classname">std::span</code>
+ </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf" target="_top">
+ P1024R3 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span &gt;= 201902L</code> </td></tr><tr><td align="left"> Should Span be Regular? </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md" target="_top">
+ P1085R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Fixed-size <code class="code">&lt;span&gt;</code> construction from dynamic range </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1976r2.html" target="_top">
+ P1976R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span &gt;= 202002L</code> </td></tr><tr><td align="left"> <code class="code">std::to_array</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0325r4.html" target="_top">
+ P0325R4 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_to_array &gt;= 201907L</code> </td></tr><tr><td align="left"> Checking for Existence of an Element in Associative Containers </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html" target="_top">
+ P0458R2 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Comparing Unordered Containers </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf" target="_top">
+ P0809R0 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Heterogeneous lookup for unordered containers </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html" target="_top">
+ P0919R3 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_generic_unordered_lookup &gt;= 201811</code> </td></tr><tr><td align="left"> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html" target="_top">
+ P1209R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_erase_if &gt;= 201811L</code> </td></tr><tr><td align="left"> Improving the Return Value of Erase-Like Algorithms </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf" target="_top">
+ P0646R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_list_remove_return_type &gt;= 201806L</code> </td></tr><tr><td align="left"> Improving the Return Value of Erase-Like Algorithms II: Free <code class="code">erase</code>/<code class="code">erase_if</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1115r3.pdf" target="_top">
+ P1115R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left">
+ <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_erase_if &gt;= 202002L</code> </td></tr><tr><td> (defined to <code class="code">201900L</code> for GCC 9.1 and 9.2 so use <code class="code">&gt; 201811L</code>) </td></tr></tbody></table></div>
+ </td></tr><tr><td align="left"> Signed ssize() functions, unsigned size() functions </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html" target="_top">
+ P1227R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ssize &gt;= 201902L</code> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Memory management</strong></span>
+ </td></tr><tr><td align="left"> Utility to convert a pointer to a raw pointer </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html" target="_top">
+ P0653R2 </a>
+ </td><td align="center"> 8.1 </td><td align="left"> <code class="code">__cpp_lib_to_address &gt;= 201711L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending <code class="code">make_shared</code> to Support Arrays </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html" target="_top">
+ P0674R1 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_shared_ptr_arrays &gt;= 201707L</code> </td></tr><tr><td align="left"> Efficient sized delete for variable sized classes </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html" target="_top">
+ P0722R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_destroying_delete &gt;= 201806L</code> </td></tr><tr><td align="left"> Utility functions to implement uses-allocator construction </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf" target="_top">
+ P0591R4 </a>
+ </td><td align="center"> 9.1 </td><td align="left">
+ <code class="code">std::scoped_allocator_adaptor</code> changes missing in 9.1.0
+ </td></tr><tr><td align="left"> <code class="code">std::assume_aligned</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf" target="_top">
+ P1007R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_assume_aligned &gt;= 201811L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Smart pointer creation with default initialization </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html" target="_top">
+ P1020R1 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_smart_ptr_for_overwrite &gt;= 201811L</code> </td></tr><tr><td align="left"> Make stateful allocator propagation more consistent for <code class="code">operator+(basic_string)</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html" target="_top">
+ P1165R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left">
+ <code class="classname">polymorphic_allocator&lt;&gt;</code> as a vocabulary type
+ </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf" target="_top">
+ P0339R6 </a>
+ </td><td align="center"> 9.1 </td><td align="left">
+ <code class="code">__cpp_lib_polymorphic_allocator &gt;= 201902L</code> (since 9.4, see Note 1)
+ </td></tr><tr><td align="left"> LWG 2511: guaranteed copy elision for piecewise construction </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html" target="_top">
+ P0475R1 </a>
+ </td><td align="center"> 7.1 </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Miscellaneous</strong></span>
+ </td></tr><tr><td align="left"> <code class="code">nodiscard</code> in the Library </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf" target="_top">
- P0600R1
- </a>
+ P0600R1 </a>
</td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> de-pessimize legacy algorithms with <code class="code">std::move</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf" target="_top">
- P0616R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Utility to convert a pointer to a raw pointer </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html" target="_top">
- P0653R2
- </a>
- </td><td align="center"> 8.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Atomic <code class="code">shared_ptr</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html" target="_top">
- P0718R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Deprecate POD </td><td align="left">
+ P0616R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Deprecate POD </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html" target="_top">
- P0767R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Library Support for the Spaceship (Comparison) Operator </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf" target="_top">
- P0768R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Treating Unnecessary <code class="code">decay</code> </td><td align="left">
+ P0767R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Treating Unnecessary <code class="code">decay</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf" target="_top">
- P0777R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">&lt;span&gt;</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf" target="_top">
- P0122R7
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span &gt;= 201803L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending chrono to Calendars and Time Zones </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html" target="_top">
- P0355R7
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Thou Shalt Not Specialize std Function Templates! </td><td align="left">
+ P0777R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Thou Shalt Not Specialize std Function Templates! </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf" target="_top">
- P0551R3
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Manipulators for C++ Synchronized Buffered Ostream </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf" target="_top">
- P0753R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">&lt;version&gt;</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf" target="_top">
- P0754R2
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Comparing Unordered Containers </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf" target="_top">
- P0809R0
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Constexpr iterator requirements </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html" target="_top">
- P0858R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_string_view &gt;= 201803L</code>
- and <code class="code">__cpp_lib_array_constexpr &gt;= 201803L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Symmetry for spaceship </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html" target="_top">
- P0905R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">string::reserve</code> Should Not Shrink </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html" target="_top">
- P0966R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Atomic Ref </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html" target="_top">
- P0019R8
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_ref &gt;= 201806L</code> </td></tr><tr><td align="left"> Checking for Existence of an Element in Associative Containers </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html" target="_top">
- P0458R2
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> LWG 2511: guaranteed copy elision for piecewise construction </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html" target="_top">
- P0475R1
- </a>
- </td><td align="center"> 7.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Bit-casting object representations </td><td align="left">
+ P0551R3 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Bit-casting object representations </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html" target="_top">
- P0476R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html" target="_top">
- P0528R3
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Support for contract based programming in C++ </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0542r5.html" target="_top">
- P0542R5
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Integral power-of-2 operations </td><td align="left">
+ P0476R2 </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_bit_cast &gt;= 201806L</code> </td></tr><tr><td align="left"> Integral power-of-2 operations </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html" target="_top">
- P0556R3
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Reviewing Deprecated Facilities of C++17 for C++20 </td><td align="left">
+ P0556R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_int_pow2 &gt;= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> On the names of low-level bit manipulation functions </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1956r1.pdf" target="_top">
+ P1956R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_int_pow2 &gt;= 202002L</code> </td></tr><tr><td align="left"> Safe integral comparisons </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0586r2.html" target="_top">
+ P0586R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_integer_comparison_functions &gt;= 202002L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Reviewing Deprecated Facilities of C++17 for C++20 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html" target="_top">
- P0619R4
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Improving the Return Value of Erase-Like Algorithms </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf" target="_top">
- P0646R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_list_remove_return_type &gt;= 201806L</code> </td></tr><tr><td align="left"> Efficient sized delete for variable sized classes </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html" target="_top">
- P0722R3
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_destroying_delete &gt;= 201806L</code> </td></tr><tr><td align="left"> Implicit conversion traits and utility functions </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html" target="_top">
- P0758R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">fpos</code> Requirements </td><td align="left">
+ P0619R4 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">fpos</code> Requirements </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html" target="_top">
- P0759R1
- </a>
- </td><td align="center"> Note 1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Add <code class="code">shift</code> to <code class="code">&lt;algorithm&gt;</code> </td><td align="left">
+ P0759R1 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Add <code class="code">shift</code> to <code class="code">&lt;algorithm&gt;</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf" target="_top">
- P0769R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Standard Library Specification in a Concepts and Contracts World </td><td align="left">
+ P0769R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_shift &gt;= 201806L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Standard Library Specification in a Concepts and Contracts World </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf" target="_top">
- P0788R3
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Constexpr for <code class="code">swap</code> and swap related functions </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html" target="_top">
- P0879R0
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms &gt;= 201806L</code> </td></tr><tr><td align="left"> The <code class="code">identity</code> metafunction </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf" target="_top">
- P0887R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">explicit(bool)</code> </td><td align="left">
+ P0788R3 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">explicit(bool)</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html" target="_top">
- P0892R2
- </a>
- </td><td align="center"> Note 1 </td><td align="left"> </td></tr><tr><td align="left"> Standard Library Concepts </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf" target="_top">
- P0898R3
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts &gt;= 201806L</code> </td></tr><tr><td align="left"> Eradicating unnecessarily explicit default constructors from the standard library </td><td align="left">
+ P0892R2 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Eradicating unnecessarily explicit default constructors from the standard library </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html" target="_top">
- P0935R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Integrating feature-test macros into the C++ WD </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html" target="_top">
- P0941R2
- </a>
- </td><td align="center"> 5.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">constexpr</code> comparison operators for <code class="code">std::array</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf" target="_top">
- P1023R0
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Update The Reference To The Unicode Standard </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html" target="_top">
- P1025R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Consistency improvements for <code class="code">&lt;=&gt;</code> and other comparison operators </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1120r0.html" target="_top">
- P1120R0
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">unwrap_ref_decay</code> and <code class="code">unwrap_reference</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf" target="_top">
- P0318R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Simplified partial function application </td><td align="left">
+ P0935R0 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">std::function</code> move constructor should be <code class="code">noexcept</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf" target="_top">
+ P0771R1 </a>
+ </td><td align="center"> 7.2 </td><td align="left"> </td></tr><tr><td align="left"> Simplified partial function application </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html" target="_top">
- P0356R5
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bind_front &gt;= 201811L</code> </td></tr><tr><td align="left"> <code class="code">reference_wrapper</code> for incomplete types </td><td align="left">
+ P0356R5 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bind_front &gt;= 201811L</code> </td></tr><tr><td align="left"> <code class="code">bind_front</code> should not unwrap <code class="code">reference_wrapper</code> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1651r0.html" target="_top">
+ P1651R0 </a>
+ </td><td align="center"> 9.3 </td><td align="left"> <code class="code">__cpp_lib_bind_front &gt;= 201907L</code> </td></tr><tr><td align="left"> <code class="code">reference_wrapper</code> for incomplete types </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html" target="_top">
- P0357R3
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">char8_t</code>: A type for UTF-8 characters and strings </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html" target="_top">
- P0482R6
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201811L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Fixing <code class="code">operator&gt;&gt;(basic_istream&amp;, CharT*)</code> (LWG 2499) </td><td align="left">
+ P0357R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Fixing <code class="code">operator&gt;&gt;(basic_istream&amp;, CharT*)</code> (LWG 2499) </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html" target="_top">
- P0487R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Utility functions to implement uses-allocator construction </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf" target="_top">
- P0591R4
- </a>
- </td><td align="center"> 9.1 </td><td align="left">
- <code class="code">std::scoped_allocator_adaptor</code> changes missing in 9.1.0
- </td></tr><tr><td align="left"> P0595R2 <code class="code">std::is_constant_evaluated()</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html" target="_top">
- P0595R2
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">variant</code> and <code class="code">optional</code> should propagate copy/move triviality </td><td align="left">
+ P0487R1 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">variant</code> and <code class="code">optional</code> should propagate copy/move triviality </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html" target="_top">
- P0602R4
- </a>
+ P0602R4 </a>
</td><td align="center"> 8.3 </td><td align="left"> </td></tr><tr><td align="left"> A sane <code class="code">variant</code> converting constructor </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html" target="_top">
- P0608R3
- </a>
+ P0608R3 </a>
</td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">visit&lt;R&gt;</code>: Explicit Return Type for <code class="code">visit</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf" target="_top">
- P0655R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">std::function</code> move constructor should be <code class="code">noexcept</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf" target="_top">
- P0771R1
- </a>
- </td><td align="center"> 7.2 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> The One Ranges Proposal </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf" target="_top">
- P0896R4
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> P0899R1 - LWG 3016 is not a defect </td><td align="left">
+ P0655R1 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> P0899R1 - LWG 3016 is not a defect </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html" target="_top">
- P0899R1
- </a>
- </td><td align="center"> 7.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Heterogeneous lookup for unordered containers </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html" target="_top">
- P0919R3
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">&lt;chrono&gt;</code> <code class="code">zero()</code>, <code class="code">min()</code>, and <code class="code">max()</code> should be <code class="code">noexcept</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf" target="_top">
- P0972R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Constexpr in <code class="code">std::pointer_traits</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf" target="_top">
- P1006R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">std::assume_aligned</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf" target="_top">
- P1007R3
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Smart pointer creation with default initialization </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html" target="_top">
- P1020R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Misc constexpr bits </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html" target="_top">
- P1032R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Should Span be Regular? </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md" target="_top">
- P1085R2
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span &gt;= 201902L</code> </td></tr><tr><td align="left"> Editorial Guidance for merging P0019r8 and P0528r3 </td><td align="left">
+ P0899R1 </a>
+ </td><td align="center"> 7.1 </td><td align="left"> </td></tr><tr><td align="left"> Editorial Guidance for merging P0019r8 and P0528r3 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html" target="_top">
- P1123R0
- </a>
- </td><td align="center"> Note 1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Cleaning up Clause 20 </td><td align="left">
+ P1123R0 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Cleaning up Clause 20 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf" target="_top">
- P1148R0
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Make stateful allocator propagation more consistent for <code class="code">operator+(basic_string)</code> </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html" target="_top">
- P1165R1
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html" target="_top">
- P1209R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_erase_if &gt;= 201811L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </td><td align="left">
+ P1148R0 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html" target="_top">
- P1210R0
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Alternative Wording for P0907R4 Signed Integers are Two's Complement </td><td align="left">
+ P1210R0 </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Alternative Wording for P0907R4 Signed Integers are Two's Complement </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html" target="_top">
- P1236R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html" target="_top">
- P1248R1
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Improving Completeness Requirements for Type Traits </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf" target="_top">
- P1285R0
- </a>
- </td><td align="center"> Partial </td><td align="left"> </td></tr><tr><td align="left"> Well-behaved interpolation for numbers and pointers </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html" target="_top">
- P0811R3
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_interpolate &gt;= 201902L</code> </td></tr><tr><td align="left"> Missing feature test macros </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html" target="_top">
- P1353R0
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left">
- <code class="classname">polymorphic_allocator&lt;&gt;</code>
- as a vocabulary type
- </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf" target="_top">
- P0339R6
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Making std::underlying_type SFINAE-friendly </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html" target="_top">
- P0340R3
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ P1236R1 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left">
I Stream, You Stream, We All Stream for
<code class="classname">istream_iterator</code>
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0738r2.html" target="_top">
- P0738R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left">
+ P0738R2 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left">
Mandating the Standard Library:
Clause 16 - Language support library
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf" target="_top">
- P1458R1
- </a>
- </td><td align="center"> </td><td align="left"> Note 1 </td></tr><tr><td align="left">
+ P1458R1 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left">
Mandating the Standard Library:
Clause 18 - Diagnostics library
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf" target="_top">
- P1459R1
- </a>
- </td><td align="center"> </td><td align="left"> Note 1 </td></tr><tr><td align="left">
+ P1459R1 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left">
Mandating the Standard Library:
Clause 20 - Strings library
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1462r1.html" target="_top">
- P1462R1
- </a>
- </td><td align="center"> </td><td align="left"> Note 1 </td></tr><tr><td align="left">
+ P1462R1 </a>
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left">
Mandating the Standard Library:
Clause 21 - Containers library
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf" target="_top">
- P1463R1
- </a>
- </td><td align="center"> 10 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ P1463R1 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
Mandating the Standard Library:
Clause 22 - Iterators library
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf" target="_top">
- P1464R1
- </a>
+ P1464R1 </a>
</td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Make <code class="code">create_directory()</code> Intuitive </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf" target="_top">
P1164R1
</a>
- </td><td align="center"> 8.3 </td><td align="left"> Treated as a DR for C++17 </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ </td><td align="center"> 8.3 </td><td align="left"> Treated as a DR for C++17 </td></tr><tr><td align="left">
Target Vectorization Policies from Parallelism V2 TS to C++20
</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1001r2.html" target="_top">
- P1001R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Signed ssize() functions, unsigned size() functions </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html" target="_top">
- P1227R2
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Ranges Design Cleanup </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf" target="_top">
- P1252R2
- </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left">
- Usability Enhancements for <code class="classname">std::span</code>
- </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf" target="_top">
- P1024R3
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span &gt;= 201902L</code> </td></tr><tr><td align="left"> Traits for [Un]bounded Arrays </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf" target="_top">
- P1357R1
- </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bounded_array_traits &gt;= 201902L</code> </td></tr><tr><td align="left"> std::to_array </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0325r4.html" target="_top">
- P0325R4
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_to_array &gt;= 201907L</code> </td></tr><tr><td align="left"> Bit operations </td><td align="left">
+ P1001R2 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_execution &gt;= 201902L</code> (since 9.4, see Note 1)</td></tr><tr><td align="left"> Merge Coroutines TS into C++20 working draft </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0912r5.html" target="_top">
+ P0912R5 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_coroutines &gt;= 201902L</code> </td></tr><tr><td align="left"> Endian just Endian </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html" target="_top">
+ P0463R1 </a>
+ </td><td align="center"> 8.1 </td><td align="left"> <code class="code">__cpp_lib_endian &gt;= 201907L</code> </td></tr><tr><td align="left"> Bit operations </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html" target="_top">
- P0553R4
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_bitops &gt;= 201907L</code> </td></tr><tr><td align="left"> Mathematical constants </td><td align="left">
+ P0553R4 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_bitops &gt;= 201907L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Well-behaved interpolation for numbers and pointers </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html" target="_top">
+ P0811R3 </a>
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_interpolate &gt;= 201902L</code> </td></tr><tr><td align="left"> Mathematical constants </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r8.pdf" target="_top">
- P0631R8
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_math_constants &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Layout-compatibility and pointer-interconvertibility traits </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0466r5.pdf" target="_top">
- P0466R5
- </a>
- </td><td align="center"> </td><td align="left">
- <code class="code">__cpp_lib_is_layout_compatible &gt;= 201907L</code>,
- <code class="code">__cpp_lib_is_layout_interconvertible &gt;= 201907L</code>,
- </td></tr><tr><td align="left"> std::stop_token and std::jthread </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf" target="_top">
- P0660R10
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_jthread &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Text formatting </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html" target="_top">
- P0645R10
- </a>
- </td><td align="center"> </td><td align="left">
- <code class="code">__cpp_lib_format &gt;= 201907L</code>,
- </td></tr><tr><td align="left"> constexpr std::invoke and related utilities </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html" target="_top">
- P1065R2
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_invoke &gt;= 201907L</code> </td></tr><tr><td align="left"> constexpr std::allocator and related utilities </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html" target="_top">
- P0784R7
- </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_constexpr_dynamic_alloc &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Atomic waiting and notifying, std::semaphore, std::latch and std::barrier </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html" target="_top">
- P1135R6
- </a>
- </td><td align="center"> </td><td align="left">
- <code class="code">__cpp_lib_atomic_lock_free_type_aliases &gt;= 201907L</code> in &lt;atomic&gt;,
- <code class="code">__cpp_lib_atomic_flag_test &gt;= 201907L</code> in &lt;atomic&gt;,
- <code class="code">__cpp_lib_atomic_wait &gt;= 201907L</code> in &lt;atomic&gt;,
- <code class="code">__cpp_lib_semaphore &gt;= 201907L</code> in &lt;semaphore&gt;,
- <code class="code">__cpp_lib_latch &gt;= 201907L</code> in &lt;latch&gt;,
- <code class="code">__cpp_lib_barrier &gt;= 201907L</code> in &lt;barrier&gt;
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> std::source_location </td><td align="left">
+ P0631R8 </a>
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_math_constants &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> std::source_location </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf" target="_top">
- P1208R6
- </a>
- </td><td align="center"> </td><td align="left">
- <code class="code">__cpp_lib_source_location &gt;= 201907L</code>,
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Adding &lt;=&gt; to the standard library </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html" target="_top">
- P1614R2
- </a>
+ P1208R6 </a>
</td><td align="center"> </td><td align="left">
- <code class="code">__cpp_lib_spaceship &gt;= 201907L</code>,
+ <code class="code">__cpp_lib_source_location &gt;= 201907L</code>
</td></tr><tr bgcolor="#C8B0B0"><td align="left"> Efficient access to std::basic_stringbuf's Buffer </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf" target="_top">
- P0408R7
- </a>
+ P0408R7 </a>
</td><td align="center"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
-Note 1: The changes in the proposal either do not affect the code in libstdc++,
-or the changes are not required for conformance.
-</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.2020.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is also specified by previous standards,
- see <a class="link" href="status.html#iso.1998.specific" title="Implementation Specific Behavior">C++ 1998/2003 Implementation
- Specific Behavior</a>, <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++
- 2011 Implementation Specific Behavior</a> and <a class="link" href="status.html#iso.2017.specific" title="Implementation Specific Behavior">C++ 2017 Implementation Specific
- Behavior</a>.
- This section only documents behaviour which is new in the 202a draft.
- </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"></a>C++ TR1</h3></div></div></div><p>
+Note 1: This feature is supported in older releases but the
+<code class="code">__cpp_lib</code> macro is not defined to the right value
+(or not defined at all) until the version shown in parentheses.
+</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"></a>C++ TR1</h3></div></div></div><p>
This table is based on the table of contents of ISO/IEC DTR 19768
Doc No: N1836=05-0096 Date: 2005-06-24
Draft Technical Report on C++ Library Extensions
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
index 17f28887119..ade77cbb80b 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
@@ -1,8 +1,8 @@
-<section xmlns="http://docbook.org/ns/docbook" version="5.0"
- xml:id="status.iso.2020" xreflabel="Status C++ 2020">
+<section xmlns="http://docbook.org/ns/docbook" version="5.0"
+ xml:id="status.iso.2020" xreflabel="Status C++ 2020">
<?dbhtml filename="status_iso_cxx2020.html"?>
-<info><title>C++ 202a</title>
+<info><title>C++ 2020</title>
<keywordset>
<keyword>ISO C++</keyword>
<keyword>2020</keyword>
@@ -26,17 +26,20 @@ not in any particular release.
<para>
The following table lists new library features that have been accepted into
-the C++2a working draft. The "Proposal" column provides a link to the
+the C++20 working draft. The "Proposal" column provides a link to the
ISO C++ committee proposal that describes the feature, while the "Status"
column indicates the first version of GCC that contains an implementation of
this feature (if it has been implemented).
-The "SD-6 Feature Test" column shows the corresponding macro or header from
+A dash (&#x2014;) in the status column indicates that the changes in the proposal
+either do not affect the code in libstdc++, or the changes are not required for conformance.
+The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6:
-Feature-testing recommendations for C++</link>.
+Feature-testing recommendations for C++</link> (where applicable)
+or any notes about the implementation.
</para>
-<table frame="all" xml:id="table.cxx20_status">
-<title>C++ 2020 Implementation Status</title>
+<table frame="all" xml:id="table.cxx20_features">
+<title>C++ 2020 Library Features</title>
<tgroup cols="4" align="left" colsep="0" rowsep="1">
<colspec colname="c1"/>
@@ -48,341 +51,340 @@ Feature-testing recommendations for C++</link>.
<entry>Library Feature</entry>
<entry>Proposal</entry>
<entry>Status</entry>
- <entry>SD-6 Feature Test</entry>
+ <entry>SD-6 Feature Test / Notes</entry>
</row>
</thead>
<tbody>
<row>
- <entry> Endian just Endian </entry>
- <entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html">
- P0463R1
- </link>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Compile-time programming</emphasis>
</entry>
- <entry align="center"> 8.1 </entry>
- <entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Extending <code>make_shared</code> to Support Arrays </entry>
+ <entry> Add constexpr modifiers to functions in <code>&lt;algorithm&gt;</code> and <code>&lt;utility&gt;</code> Headers </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html">
- P0674R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html">
+ P0202R3 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_algorithms &gt;= 201703L</code> </entry>
</row>
<row>
- <entry> Floating Point Atomic </entry>
+ <entry> Constexpr for <code>swap</code> and swap related functions </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html">
- P0020R6
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html">
+ P0879R0 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_constexpr_algorithms &gt;= 201806L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> C++ Synchronized Buffered Ostream </entry>
+ <entry> Constexpr for <code>std::complex</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
- P0053R7
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html">
+ P0415R1 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_complex &gt;= 201711L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <entry> Add constexpr modifiers to functions in <code>&lt;algorithm&gt;</code> and <code>&lt;utility&gt;</code> Headers </entry>
+ <entry> P0595R2 <code>std::is_constant_evaluated()</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html">
- P0202R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html">
+ P0595R2 </link>
+ </entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_is_constant_evaluated &gt;= 201811L</code> </entry>
+ </row>
+
+ <row>
+ <entry> More constexpr containers </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html">
+ P0784R7 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_constexpr_algorithms &gt;= 201703L</code> </entry>
+ <entry> <code>__cpp_lib_constexpr_dynamic_alloc &gt;= 201907L</code> </entry>
</row>
<row>
- <entry> Constexpr for <code>std::complex</code> </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Making <code>std::string</code> constexpr </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html">
- P0415R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf">
+ P0980R1 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry/>
+ <entry> <code>__cpp_lib_constexpr_string &gt;= 201907L</code> </entry>
</row>
<row>
- <entry> Make <code>std::memory_order</code> a scoped enumeration </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Making <code>std::vector</code> constexpr </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html">
- P0439R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf">
+ P1004R2 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry/>
+ <entry> <code>__cpp_lib_constexpr_vector &gt;= 201907L</code> </entry>
</row>
<row>
- <entry> String Prefix and Suffix Checking </entry>
+ <entry> Constexpr in <code>std::pointer_traits</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html">
- P0457R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf">
+ P1006R1 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_constexpr_memory &gt;= 201811L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <entry> Transformation Trait <code>remove_cvref</code> </entry>
+ <entry> constexpr for <code>&lt;numeric&gt;</code> algorithms </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf">
- P0550R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1645r1.html">
+ P1645R1 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_numeric &gt;= 201911L</code> </entry>
</row>
<row>
- <entry> <code>nodiscard</code> in the Library </entry>
+ <entry> Constexpr iterator requirements </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf">
- P0600R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html">
+ P0858R0 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry>
+ <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
+ <row><entry> <code>__cpp_lib_array_constexpr &gt;= 201803L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_string_view &gt;= 201803L</code> </entry></row>
+ <row><entry> (both since 9.4, see Note 1) </entry></row>
+ </tbody></tgroup></informaltable>
+ </entry>
</row>
<row>
- <entry> de-pessimize legacy algorithms with <code>std::move</code> </entry>
+ <entry> <code>constexpr</code> comparison operators for <code>std::array</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf">
- P0616R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf">
+ P1023R0 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_array_constexpr &gt;= 201806</code> </entry>
</row>
<row>
- <entry> Utility to convert a pointer to a raw pointer </entry>
+ <entry> Misc constexpr bits </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html">
- P0653R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html">
+ P1032R1 </link>
+ </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry>
+ <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
+ <row><entry> <code>__cpp_lib_array_constexpr &gt;= 201811L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_constexpr_functional &gt;= 201811L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_constexpr_iterator &gt;= 201811L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_constexpr_string_view &gt;= 201811L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_constexpr_tuple &gt;= 201811L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_constexpr_utility &gt;= 201811L</code> </entry></row>
+ </tbody></tgroup></informaltable>
</entry>
- <entry align="center"> 8.1 </entry>
- <entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Atomic <code>shared_ptr</code> </entry>
+ <entry> <code>constexpr <emphasis>INVOKE</emphasis></code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html">
- P0718R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html">
+ P1065R2 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_functional &gt;= 201907L</code> </entry>
</row>
+
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Deprecate POD </entry>
+ <entry> Transformation Trait <code>remove_cvref</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html">
- P0767R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf">
+ P0550R2 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_remove_cvref &gt;= 201711L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Library Support for the Spaceship (Comparison) Operator </entry>
+ <entry> Implicit conversion traits and utility functions </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf">
- P0768R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html">
+ P0758R1 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_is_nothrow_convertible &gt;= 201806L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <entry> Treating Unnecessary <code>decay</code> </entry>
+ <entry> The <code>identity</code> metafunction </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf">
- P0777R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf">
+ P0887R1 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_type_identity &gt;= 201806L</code> (since 9.4, see Note 1) </entry>
</row>
+
<row>
- <entry> <code>&lt;span&gt;</code> </entry>
+ <entry> <code>unwrap_ref_decay</code> and <code>unwrap_reference</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf">
- P0122R7
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf">
+ P0318R1 </link>
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_span &gt;= 201803L</code> </entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_unwrap_ref &gt;= 201811L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Extending chrono to Calendars and Time Zones </entry>
+ <?dbhtml bgcolor="#B0B0B0" ?>
+ <entry> Improving Completeness Requirements for Type Traits </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
- P0355R7
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
+ P1285R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> Partial </entry>
<entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Thou Shalt Not Specialize std Function Templates! </entry>
+ <entry> Missing feature test macros </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf">
- P0551R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html">
+ P1353R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Manipulators for C++ Synchronized Buffered Ostream </entry>
+ <entry> Making std::underlying_type SFINAE-friendly </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
- P0753R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html">
+ P0340R3 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
<row>
- <entry> <code>&lt;version&gt;</code> </entry>
+ <entry> Traits for [Un]bounded Arrays </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf">
- P0754R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf">
+ P1357R1 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_bounded_array_traits &gt;= 201902L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Comparing Unordered Containers </entry>
+ <entry> Layout-compatibility and pointer-interconvertibility traits </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
- P0809R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0466r5.pdf">
+ P0466R5 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry>
+ <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
+ <row><entry> <code>__cpp_lib_is_layout_compatible &gt;= 201907L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_is_pointer_interconvertible &gt;= 201907L</code> </entry></row>
+ </tbody></tgroup></informaltable>
+ </entry>
</row>
<row>
- <entry> Constexpr iterator requirements </entry>
+ <entry> Integrating feature-test macros into the C++ WD </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html">
- P0858R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html">
+ P0941R2 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_string_view &gt;= 201803L</code>
- and <code>__cpp_lib_array_constexpr &gt;= 201803L</code> </entry>
+ <entry align="center"> 5.1 </entry>
+ <entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Symmetry for spaceship </entry>
+ <entry> <code>&lt;version&gt;</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html">
- P0905R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf">
+ P0754R2 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__has_include(&lt;version&gt;)</code> </entry>
</row>
+
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> <code>string::reserve</code> Should Not Shrink </entry>
- <entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
- P0966R1
- </link>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Synchronization</emphasis>
</entry>
- <entry align="center"> </entry>
- <entry />
</row>
<row>
<entry> Atomic Ref </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html">
- P0019R8
- </link>
+ P0019R8 </link>
</entry>
<entry align="center"> 10.1 </entry>
<entry> <code>__cpp_lib_atomic_ref &gt;= 201806L</code> </entry>
</row>
<row>
- <entry> Checking for Existence of an Element in Associative Containers </entry>
+ <entry> Floating Point Atomic </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html">
- P0458R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html">
+ P0020R6 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_atomic_float &gt;= 201711L</code> </entry>
</row>
<row>
- <entry> LWG 2511: guaranteed copy elision for piecewise construction </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> C++ Synchronized Buffered Ostream </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html">
- P0475R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
+ P0053R7 </link>
</entry>
- <entry align="center"> 7.1 </entry>
- <entry />
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_syncbuf &gt;= 201711L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Bit-casting object representations </entry>
+ <entry> Manipulators for C++ Synchronized Buffered Ostream </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
- P0476R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
+ P0753R2 </link>
</entry>
<entry align="center"> </entry>
+ <entry> <code>__cpp_lib_syncbuf &gt;= 201803L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Make <code>std::memory_order</code> a scoped enumeration </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html">
+ P0439R0 </link>
+ </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
@@ -391,8 +393,7 @@ Feature-testing recommendations for C++</link>.
<entry> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html">
- P0528R3
- </link>
+ P0528R3 </link>
</entry>
<entry align="center"> </entry>
<entry />
@@ -400,352 +401,407 @@ Feature-testing recommendations for C++</link>.
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Support for contract based programming in C++ </entry>
+ <entry> Atomic <code>shared_ptr</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0542r5.html">
- P0542R5
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html">
+ P0718R2 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry> <code> __cpp_lib_atomic_shared_ptr &gt;= 201711L</code> </entry>
</row>
<row>
- <entry> Integral power-of-2 operations </entry>
+ <entry> std::stop_token and std::jthread </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html">
- P0556R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf">
+ P0660R10 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_jthread &gt;= 201907L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Rename <code>condition_variable_any</code> interruptible wait methods </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1869r1.html">
+ P1869R1 </link>
+ </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_jthread &gt;= 201911L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Reviewing Deprecated Facilities of C++17 for C++20 </entry>
+ <entry> Atomic waiting and notifying, std::semaphore, std::latch and std::barrier </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html">
- P0619R4
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html">
+ P1135R6 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry>
+ <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
+ <row><entry> <code>__cpp_lib_atomic_lock_free_type_aliases &gt;= 201907L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_atomic_flag_test &gt;= 201907L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_atomic_wait &gt;= 201907L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_semaphore &gt;= 201907L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_latch &gt;= 201907L</code> </entry></row>
+ <row><entry> <code>__cpp_lib_barrier &gt;= 201907L</code> </entry></row>
+ </tbody></tgroup></informaltable>
+ </entry>
</row>
<row>
- <entry> Improving the Return Value of Erase-Like Algorithms </entry>
+ <entry> Fixing Atomic Initialization </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf">
- P0646R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0883r2.pdf">
+ P0883R2 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_list_remove_return_type &gt;= 201806L</code> </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_atomic_value_initialization &gt;= 201911L</code> </entry>
</row>
+
+
<row>
- <entry> Efficient sized delete for variable sized classes </entry>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Ranges and Concepts</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Standard Library Concepts </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html">
- P0722R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf">
+ P0898R3 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_destroying_delete &gt;= 201806L</code> </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_concepts &gt;= 201806L</code> </entry>
</row>
<row>
- <entry> Implicit conversion traits and utility functions </entry>
+ <entry> Rename concepts to standard_case for C++20, while we still can </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html">
- P0758R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r1.pdf">
+ P1754R1 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_concepts &gt;= 201907L</code> </entry>
</row>
<row>
- <entry> <code>fpos</code> Requirements </entry>
+ <entry> Wording for <emphasis><code>boolean-testable</code></emphasis> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html">
- P0759R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1964r2.html">
+ P1964R2 </link>
</entry>
- <entry align="center"> Note 1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_concepts &gt;= 202002L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Add <code>shift</code> to <code>&lt;algorithm&gt;</code> </entry>
+ <entry> The One Ranges Proposal </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf">
- P0769R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf">
+ P0896R4 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_ranges &gt;= 201811L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Standard Library Specification in a Concepts and Contracts World </entry>
+ <entry> Input Range Adaptors </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
- P0788R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1035r7.pdf">
+ P1035R7 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_ranges &gt;= 201907L</code> </entry>
</row>
<row>
- <entry> Constexpr for <code>swap</code> and swap related functions </entry>
+ <entry> <code>ranges</code> compare algorithm are over-constrained </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html">
- P0879R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1716r3.html">
+ P1716R3 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_constexpr_algorithms &gt;= 201806L</code> </entry>
+ <entry> <code>__cpp_lib_ranges &gt;= 201911L</code> </entry>
</row>
<row>
- <entry> The <code>identity</code> metafunction </entry>
+ <entry> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf">
- P0887R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html">
+ P1248R1 </link>
</entry>
- <entry align="center"> 9.1 </entry>
+ <entry align="center"> 10.1 </entry>
<entry />
</row>
<row>
- <entry> <code>explicit(bool)</code> </entry>
+ <entry> Ranges Design Cleanup </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html">
- P0892R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf">
+ P1252R2 </link>
</entry>
- <entry align="center"> Note 1 </entry>
+ <entry align="center"> 10.1 </entry>
<entry />
</row>
+
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Time, dates, calendars, time zones</emphasis>
+ </entry>
+ </row>
+
<row>
- <entry> Standard Library Concepts </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Extending chrono to Calendars and Time Zones </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf">
- P0898R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
+ P0355R7 </link>
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_concepts &gt;= 201806L</code> </entry>
+ <entry/>
+ <entry> <code>__cpp_lib_chrono &gt;= 201803L</code> </entry>
</row>
<row>
- <entry> Eradicating unnecessarily explicit default constructors from the standard library </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Miscellaneous minor fixes for chrono </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html">
- P0935R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html">
+ P1466R3 </link>
+ </entry>
+ <entry/>
+ <entry> <code>__cpp_lib_chrono &gt;= 201907L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>&lt;chrono&gt;</code> <code>zero()</code>, <code>min()</code>, and <code>max()</code> should be <code>noexcept</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf">
+ P0972R0 </link>
</entry>
<entry align="center"> 9.1 </entry>
<entry />
</row>
+
<row>
- <entry> Integrating feature-test macros into the C++ WD </entry>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Three-way comparison</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Library Support for the Spaceship (Comparison) Operator </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html">
- P0941R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf">
+ P0768R1 </link>
</entry>
- <entry align="center"> 5.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_three_way_comparison &gt;= 201711L</code> </entry>
</row>
<row>
- <entry> <code>constexpr</code> comparison operators for <code>std::array</code> </entry>
+ <entry> Symmetry for spaceship </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf">
- P1023R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html">
+ P0905R1 </link>
</entry>
<entry align="center"> 10.1 </entry>
<entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Update The Reference To The Unicode Standard </entry>
+ <entry> Adding &lt;=&gt; to the standard library </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
- P1025R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html">
+ P1614R2 </link>
+ </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry>
+ <code>__cpp_lib_three_way_comparison &gt;= 201907L</code>
+ </entry>
+ </row>
+
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Strings and text</emphasis>
</entry>
- <entry align="center"> </entry>
- <entry />
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Consistency improvements for <code>&lt;=&gt;</code> and other comparison operators </entry>
+ <entry> <code>string::reserve</code> Should Not Shrink </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1120r0.html">
- P1120R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
+ P0966R1 </link>
</entry>
<entry align="center"> </entry>
<entry />
</row>
<row>
- <entry> <code>unwrap_ref_decay</code> and <code>unwrap_reference</code> </entry>
+ <entry> <code>char8_t</code>: A type for UTF-8 characters and strings </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf">
- P0318R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html">
+ P0482R6 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_char8_t &gt;= 201811L</code> </entry>
</row>
<row>
- <entry> Simplified partial function application </entry>
+ <entry> <code>char8_t</code> backward compatibility remediation </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html">
- P0356R5
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html">
+ P1423R3 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_bind_front &gt;= 201811L</code> </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_char8_t &gt;= 201907L</code> </entry>
</row>
<row>
- <entry> <code>reference_wrapper</code> for incomplete types </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Text formatting </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html">
- P0357R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html">
+ P0645R10 </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry>
+ <code>__cpp_lib_format &gt;= 201907L</code>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
</row>
<row>
- <entry> <code>char8_t</code>: A type for UTF-8 characters and strings </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Integration of chrono with text formatting </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html">
- P0482R6
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf">
+ P1361R2 </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry>
+ <code>__cpp_lib_format &gt;= 201907L</code>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_char8_t &gt;= 201811L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Fixing <code>operator&gt;&gt;(basic_istream&amp;, CharT*)</code> (LWG 2499) </entry>
+ <entry> Printf corner cases in <code>std::format</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html">
- P0487R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html">
+ P1652R1 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry>
+ <code>__cpp_lib_format &gt;= 201907L</code>
+ </entry>
</row>
<row>
- <entry> Utility functions to implement uses-allocator construction </entry>
+ <entry> String Prefix and Suffix Checking </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf">
- P0591R4
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html">
+ P0457R2 </link>
</entry>
<entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_starts_ends_with &gt;= 201711L</code> (since 9.4, see Note 1) </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Update The Reference To The Unicode Standard </entry>
<entry>
- <code>std::scoped_allocator_adaptor</code> changes missing in 9.1.0
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
+ P1025R1 </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry />
+ </row>
+
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Containers</emphasis>
</entry>
</row>
<row>
- <entry> P0595R2 <code>std::is_constant_evaluated()</code> </entry>
+ <entry> span: bounds-safe views for sequences of objects </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html">
- P0595R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf">
+ P0122R7 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_span &gt;= 201803L</code> </entry>
</row>
<row>
- <entry> <code>variant</code> and <code>optional</code> should propagate copy/move triviality </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html">
- P0602R4
- </link>
+ Usability Enhancements for <classname>std::span</classname>
</entry>
- <entry align="center"> 8.3 </entry>
- <entry />
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf">
+ P1024R3 </link>
+ </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_span &gt;= 201902L</code> </entry>
</row>
<row>
- <entry> A sane <code>variant</code> converting constructor </entry>
+ <entry> Should Span be Regular? </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html">
- P0608R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md">
+ P1085R2 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry />
+ <entry/>
</row>
<row>
- <entry> <code>visit&lt;R&gt;</code>: Explicit Return Type for <code>visit</code> </entry>
+ <entry> Fixed-size <code>&lt;span&gt;</code> construction from dynamic range </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf">
- P0655R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1976r2.html">
+ P1976R2 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_span &gt;= 202002L</code> </entry>
</row>
<row>
- <entry> <code>std::function</code> move constructor should be <code>noexcept</code> </entry>
+ <entry> <code>std::to_array</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf">
- P0771R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0325r4.html">
+ P0325R4 </link>
</entry>
- <entry align="center"> 7.2 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_to_array &gt;= 201907L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> The One Ranges Proposal </entry>
+ <entry> Checking for Existence of an Element in Associative Containers </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf">
- P0896R4
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html">
+ P0458R2 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
<row>
- <entry> P0899R1 - LWG 3016 is not a defect </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Comparing Unordered Containers </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html">
- P0899R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
+ P0809R0 </link>
</entry>
- <entry align="center"> 7.1 </entry>
+ <entry align="center"> </entry>
<entry />
</row>
@@ -754,518 +810,619 @@ Feature-testing recommendations for C++</link>.
<entry> Heterogeneous lookup for unordered containers </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html">
- P0919R3
- </link>
+ P0919R3 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry> <code>__cpp_lib_generic_unordered_lookup &gt;= 201811</code> </entry>
</row>
<row>
- <entry> <code>&lt;chrono&gt;</code> <code>zero()</code>, <code>min()</code>, and <code>max()</code> should be <code>noexcept</code> </entry>
+ <entry> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf">
- P0972R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html">
+ P1209R0 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_erase_if &gt;= 201811L</code> </entry>
</row>
<row>
- <entry> Constexpr in <code>std::pointer_traits</code> </entry>
+ <entry> Improving the Return Value of Erase-Like Algorithms </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf">
- P1006R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf">
+ P0646R1 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_list_remove_return_type &gt;= 201806L</code> </entry>
</row>
<row>
- <entry> <code>std::assume_aligned</code> </entry>
+ <entry> Improving the Return Value of Erase-Like Algorithms II: Free <code>erase</code>/<code>erase_if</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf">
- P1007R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1115r3.pdf">
+ P1115R3 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry>
+ <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
+ <row><entry> <code>__cpp_lib_erase_if &gt;= 202002L</code> </entry></row>
+ <row><entry> (defined to <code>201900L</code> for GCC 9.1 and 9.2 so use <code>&gt; 201811L</code>) </entry></row>
+ </tbody></tgroup></informaltable>
+ </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Smart pointer creation with default initialization </entry>
+ <entry> Signed ssize() functions, unsigned size() functions </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html">
- P1020R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html">
+ P1227R2 </link>
</entry>
- <entry align="center"> </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_ssize &gt;= 201902L</code> </entry>
+ </row>
+
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Memory management</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Utility to convert a pointer to a raw pointer </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html">
+ P0653R2 </link>
+ </entry>
+ <entry align="center"> 8.1 </entry>
+ <entry> <code>__cpp_lib_to_address &gt;= 201711L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Misc constexpr bits </entry>
+ <entry> Extending <code>make_shared</code> to Support Arrays </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html">
- P1032R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html">
+ P0674R1 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry> <code>__cpp_lib_shared_ptr_arrays &gt;= 201707L</code> </entry>
</row>
<row>
- <entry> Should Span be Regular? </entry>
+ <entry> Efficient sized delete for variable sized classes </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md">
- P1085R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html">
+ P0722R3 </link>
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_span &gt;= 201902L</code> </entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_destroying_delete &gt;= 201806L</code> </entry>
</row>
<row>
- <entry> Editorial Guidance for merging P0019r8 and P0528r3 </entry>
+ <entry> Utility functions to implement uses-allocator construction </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html">
- P1123R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf">
+ P0591R4 </link>
</entry>
- <entry align="center"> Note 1 </entry>
- <entry />
+ <entry align="center"> 9.1 </entry>
+ <entry>
+ <code>std::scoped_allocator_adaptor</code> changes missing in 9.1.0
+ </entry>
+ </row>
+
+ <row>
+ <entry> <code>std::assume_aligned</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf">
+ P1007R3 </link>
+ </entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_assume_aligned &gt;= 201811L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Cleaning up Clause 20 </entry>
+ <entry> Smart pointer creation with default initialization </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
- P1148R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html">
+ P1020R1 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry> <code>__cpp_lib_smart_ptr_for_overwrite &gt;= 201811L</code> </entry>
</row>
<row>
<entry> Make stateful allocator propagation more consistent for <code>operator+(basic_string)</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html">
- P1165R1
- </link>
+ P1165R1 </link>
</entry>
<entry align="center"> 10.1 </entry>
<entry />
</row>
<row>
- <entry> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html">
- P1209R0
- </link>
+ <classname>polymorphic_allocator&lt;&gt;</classname> as a vocabulary type
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf">
+ P0339R6 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_erase_if &gt;= 201811L</code> </entry>
+ <entry>
+ <code>__cpp_lib_polymorphic_allocator &gt;= 201902L</code> (since 9.4, see Note 1)
+ </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </entry>
+ <entry> LWG 2511: guaranteed copy elision for piecewise construction </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html">
- P1210R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html">
+ P0475R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 7.1 </entry>
<entry />
</row>
+
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Alternative Wording for P0907R4 Signed Integers are Two's Complement </entry>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Miscellaneous</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> <code>nodiscard</code> in the Library </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html">
- P1236R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf">
+ P0600R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </entry>
+ <entry> de-pessimize legacy algorithms with <code>std::move</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html">
- P1248R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf">
+ P0616R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
<row>
- <?dbhtml bgcolor="#B0B0B0" ?>
- <entry> Improving Completeness Requirements for Type Traits </entry>
+ <entry> Deprecate POD </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
- P1285R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html">
+ P0767R1 </link>
</entry>
- <entry align="center"> Partial </entry>
+ <entry align="center"> 10.1 </entry>
<entry />
</row>
<row>
- <entry> Well-behaved interpolation for numbers and pointers </entry>
+ <entry> Treating Unnecessary <code>decay</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html">
- P0811R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf">
+ P0777R1 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_interpolate &gt;= 201902L</code> </entry>
+ <entry />
</row>
<row>
- <entry> Missing feature test macros </entry>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Thou Shalt Not Specialize std Function Templates! </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html">
- P1353R0
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf">
+ P0551R3 </link>
</entry>
- <entry align="center"> 9.1 </entry>
+ <entry align="center"> </entry>
<entry />
</row>
<row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Bit-casting object representations </entry>
<entry>
- <classname>polymorphic_allocator&lt;&gt;</classname>
- as a vocabulary type
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
+ P0476R2 </link>
</entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_bit_cast &gt;= 201806L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Integral power-of-2 operations </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf">
- P0339R6
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html">
+ P0556R3 </link>
</entry>
<entry align="center"> 9.1 </entry>
- <entry />
+ <entry> <code>__cpp_lib_int_pow2 &gt;= 201806L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <entry> Making std::underlying_type SFINAE-friendly </entry>
+ <entry> On the names of low-level bit manipulation functions </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html">
- P0340R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1956r1.pdf">
+ P1956R1 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry />
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_int_pow2 &gt;= 202002L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Safe integral comparisons </entry>
<entry>
- I Stream, You Stream, We All Stream for
- <classname>istream_iterator</classname>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0586r2.html">
+ P0586R2 </link>
</entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_integer_comparison_functions &gt;= 202002L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Reviewing Deprecated Facilities of C++17 for C++20 </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0738r2.html">
- P0738R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html">
+ P0619R4 </link>
</entry>
<entry align="center"> </entry>
<entry />
</row>
<row>
+ <entry> <code>fpos</code> Requirements </entry>
<entry>
- Mandating the Standard Library:
- Clause 16 - Language support library
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html">
+ P0759R1 </link>
</entry>
+ <entry align="center"> &#x2014; </entry>
+ <entry />
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Add <code>shift</code> to <code>&lt;algorithm&gt;</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
- P1458R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf">
+ P0769R2 </link>
</entry>
- <entry align="center"> </entry>
- <entry> Note 1 </entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_shift &gt;= 201806L</code> </entry>
</row>
<row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Standard Library Specification in a Concepts and Contracts World </entry>
<entry>
- Mandating the Standard Library:
- Clause 18 - Diagnostics library
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
+ P0788R3 </link>
</entry>
+ <entry align="center"> </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> <code>explicit(bool)</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
- P1459R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html">
+ P0892R2 </link>
</entry>
- <entry align="center"> </entry>
- <entry> Note 1 </entry>
+ <entry align="center"> &#x2014; </entry>
+ <entry />
</row>
<row>
+ <entry> Eradicating unnecessarily explicit default constructors from the standard library </entry>
<entry>
- Mandating the Standard Library:
- Clause 20 - Strings library
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html">
+ P0935R0 </link>
</entry>
+ <entry align="center"> 9.1 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> <code>std::function</code> move constructor should be <code>noexcept</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1462r1.html">
- P1462R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf">
+ P0771R1 </link>
</entry>
- <entry align="center"> </entry>
- <entry> Note 1 </entry>
+ <entry align="center"> 7.2 </entry>
+ <entry />
</row>
<row>
+ <entry> Simplified partial function application </entry>
<entry>
- Mandating the Standard Library:
- Clause 21 - Containers library
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html">
+ P0356R5 </link>
</entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_bind_front &gt;= 201811L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>bind_front</code> should not unwrap <code>reference_wrapper</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf">
- P1463R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1651r0.html">
+ P1651R0 </link>
</entry>
- <entry align="center"> 10 </entry>
- <entry/>
+ <entry align="center"> 9.3 </entry>
+ <entry> <code>__cpp_lib_bind_front &gt;= 201907L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>reference_wrapper</code> for incomplete types </entry>
<entry>
- Mandating the Standard Library:
- Clause 22 - Iterators library
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html">
+ P0357R3 </link>
</entry>
+ <entry align="center"> 9.1 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Fixing <code>operator&gt;&gt;(basic_istream&amp;, CharT*)</code> (LWG 2499) </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf">
- P1464R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html">
+ P0487R1 </link>
</entry>
<entry align="center"> </entry>
<entry />
</row>
<row>
- <entry> Make <code>create_directory()</code> Intuitive </entry>
+ <entry> <code>variant</code> and <code>optional</code> should propagate copy/move triviality </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf">
- P1164R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html">
+ P0602R4 </link>
</entry>
<entry align="center"> 8.3 </entry>
- <entry> Treated as a DR for C++17 </entry>
+ <entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> A sane <code>variant</code> converting constructor </entry>
<entry>
- Target Vectorization Policies from Parallelism V2 TS to C++20
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html">
+ P0608R3 </link>
</entry>
+ <entry align="center"> 10.1 </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> <code>visit&lt;R&gt;</code>: Explicit Return Type for <code>visit</code> </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1001r2.html">
- P1001R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf">
+ P0655R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
<row>
- <entry> Signed ssize() functions, unsigned size() functions </entry>
+ <entry> P0899R1 - LWG 3016 is not a defect </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html">
- P1227R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html">
+ P0899R1 </link>
</entry>
- <entry align="center"> 10.1 </entry>
+ <entry align="center"> 7.1 </entry>
<entry />
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Ranges Design Cleanup </entry>
+ <entry> Editorial Guidance for merging P0019r8 and P0528r3 </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf">
- P1252R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html">
+ P1123R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> &#x2014; </entry>
<entry />
</row>
<row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Cleaning up Clause 20 </entry>
<entry>
- Usability Enhancements for <classname>std::span</classname>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
+ P1148R0 </link>
</entry>
+ <entry align="center"> </entry>
+ <entry />
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf">
- P1024R3
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html">
+ P1210R0 </link>
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_span &gt;= 201902L</code> </entry>
+ <entry align="center"> </entry>
+ <entry />
</row>
<row>
- <entry> Traits for [Un]bounded Arrays </entry>
+ <entry> Alternative Wording for P0907R4 Signed Integers are Two's Complement </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf">
- P1357R1
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html">
+ P1236R1 </link>
</entry>
- <entry align="center"> 9.1 </entry>
- <entry> <code>__cpp_lib_bounded_array_traits &gt;= 201902L</code> </entry>
+ <entry align="center"> &#x2014; </entry>
+ <entry/>
</row>
<row>
- <entry> std::to_array </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0325r4.html">
- P0325R4
- </link>
+ I Stream, You Stream, We All Stream for
+ <classname>istream_iterator</classname>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0738r2.html">
+ P0738R2 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_to_array &gt;= 201907L</code> </entry>
+ <entry />
</row>
<row>
- <entry> Bit operations </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html">
- P0553R4
- </link>
+ Mandating the Standard Library:
+ Clause 16 - Language support library
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_bitops &gt;= 201907L</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
+ P1458R1 </link>
+ </entry>
+ <entry align="center"> &#x2014; </entry>
+ <entry/>
</row>
<row>
- <entry> Mathematical constants </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r8.pdf">
- P0631R8
- </link>
+ Mandating the Standard Library:
+ Clause 18 - Diagnostics library
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_math_constants &gt;= 201907L</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
+ P1459R1 </link>
+ </entry>
+ <entry align="center"> &#x2014; </entry>
+ <entry/>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Layout-compatibility and pointer-interconvertibility traits </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0466r5.pdf">
- P0466R5
- </link>
+ Mandating the Standard Library:
+ Clause 20 - Strings library
</entry>
- <entry align="center"> </entry>
<entry>
- <code>__cpp_lib_is_layout_compatible &gt;= 201907L</code>,
- <code>__cpp_lib_is_layout_interconvertible &gt;= 201907L</code>,
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1462r1.html">
+ P1462R1 </link>
</entry>
+ <entry align="center"> &#x2014; </entry>
+ <entry/>
</row>
<row>
- <entry> std::stop_token and std::jthread </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf">
- P0660R10
- </link>
+ Mandating the Standard Library:
+ Clause 21 - Containers library
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf">
+ P1463R1 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_jthread &gt;= 201907L</code> </entry>
+ <entry/>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Text formatting </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html">
- P0645R10
- </link>
+ Mandating the Standard Library:
+ Clause 22 - Iterators library
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf">
+ P1464R1 </link>
</entry>
<entry align="center"> </entry>
+ <entry />
+ </row>
+
+ <row>
+ <entry> Make <code>create_directory()</code> Intuitive </entry>
<entry>
- <code>__cpp_lib_format &gt;= 201907L</code>,
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf">
+ P1164R1
+ </link>
</entry>
+ <entry align="center"> 8.3 </entry>
+ <entry> Treated as a DR for C++17 </entry>
</row>
<row>
- <entry> constexpr std::invoke and related utilities </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html">
- P1065R2
- </link>
+ Target Vectorization Policies from Parallelism V2 TS to C++20
</entry>
- <entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_lib_constexpr_invoke &gt;= 201907L</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1001r2.html">
+ P1001R2 </link>
+ </entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_execution &gt;= 201902L</code> (since 9.4, see Note 1)</entry>
</row>
<row>
- <entry> constexpr std::allocator and related utilities </entry>
+ <entry> Merge Coroutines TS into C++20 working draft </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html">
- P0784R7
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0912r5.html">
+ P0912R5 </link>
</entry>
<entry align="center"> 10.1 </entry>
- <entry> <code>__cpp_constexpr_dynamic_alloc &gt;= 201907L</code> </entry>
+ <entry> <code>__cpp_lib_coroutines &gt;= 201902L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Atomic waiting and notifying, std::semaphore, std::latch and std::barrier </entry>
+ <entry> Endian just Endian </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html">
- P1135R6
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html">
+ P0463R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 8.1 </entry>
+ <entry> <code>__cpp_lib_endian &gt;= 201907L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Bit operations </entry>
<entry>
- <code>__cpp_lib_atomic_lock_free_type_aliases &gt;= 201907L</code> in &lt;atomic&gt;,
- <code>__cpp_lib_atomic_flag_test &gt;= 201907L</code> in &lt;atomic&gt;,
- <code>__cpp_lib_atomic_wait &gt;= 201907L</code> in &lt;atomic&gt;,
- <code>__cpp_lib_semaphore &gt;= 201907L</code> in &lt;semaphore&gt;,
- <code>__cpp_lib_latch &gt;= 201907L</code> in &lt;latch&gt;,
- <code>__cpp_lib_barrier &gt;= 201907L</code> in &lt;barrier&gt;
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html">
+ P0553R4 </link>
</entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_bitops &gt;= 201907L</code> (since 9.4, see Note 1) </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
- <entry> std::source_location </entry>
+ <entry> Well-behaved interpolation for numbers and pointers </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf">
- P1208R6
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html">
+ P0811R3 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
+ <entry> <code>__cpp_lib_interpolate &gt;= 201902L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Mathematical constants </entry>
<entry>
- <code>__cpp_lib_source_location &gt;= 201907L</code>,
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r8.pdf">
+ P0631R8 </link>
</entry>
+ <entry align="center"> 10.1 </entry>
+ <entry> <code>__cpp_lib_math_constants &gt;= 201907L</code> </entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
- <entry> Adding &lt;=&gt; to the standard library </entry>
+ <entry> std::source_location </entry>
<entry>
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html">
- P1614R2
- </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf">
+ P1208R6 </link>
</entry>
<entry align="center"> </entry>
<entry>
- <code>__cpp_lib_spaceship &gt;= 201907L</code>,
+ <code>__cpp_lib_source_location &gt;= 201907L</code>
</entry>
</row>
@@ -1274,8 +1431,7 @@ Feature-testing recommendations for C++</link>.
<entry> Efficient access to std::basic_stringbuf's Buffer </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf">
- P0408R7
- </link>
+ P0408R7 </link>
</entry>
<entry align="center"> </entry>
<entry />
@@ -1286,23 +1442,9 @@ Feature-testing recommendations for C++</link>.
</table>
<para>
-Note 1: The changes in the proposal either do not affect the code in libstdc++,
-or the changes are not required for conformance.
+Note 1: This feature is supported in older releases but the
+<code>__cpp_lib</code> macro is not defined to the right value
+(or not defined at all) until the version shown in parentheses.
</para>
-
-<section xml:id="iso.2020.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
-
- <para>For behaviour which is also specified by previous standards,
- see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
- Specific Behavior</link>, <link linkend="iso.2011.specific">C++
- 2011 Implementation Specific Behavior</link> and <link
- linkend="iso.2017.specific">C++ 2017 Implementation Specific
- Behavior</link>.
- This section only documents behaviour which is new in the 202a draft.
- </para>
-
-
-</section>
-
</section>