|  | <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++ 2020</title> | 
|  | <keywordset> | 
|  | <keyword>ISO C++</keyword> | 
|  | <keyword>2020</keyword> | 
|  | </keywordset> | 
|  | </info> | 
|  |  | 
|  | <para> | 
|  | In this implementation the <literal>-std=gnu++20</literal> or | 
|  | <literal>-std=c++20</literal> flag must be used to enable language | 
|  | and library | 
|  | features. See <link linkend="manual.intro.using.flags">dialect</link> | 
|  | options. The pre-defined symbol | 
|  | <constant>__cplusplus</constant> is used to check for the | 
|  | presence of the required flag. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | This section describes the C++20 and library TS support in mainline GCC, | 
|  | not in any particular release. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | The following table lists new library features that have been accepted into | 
|  | 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). | 
|  | 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 | 
|  | <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> (where applicable) | 
|  | or any notes about the implementation. | 
|  | </para> | 
|  |  | 
|  | <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"/> | 
|  | <colspec colname="c2"/> | 
|  | <colspec colname="c3"/> | 
|  | <colspec colname="c4"/> | 
|  | <thead> | 
|  | <row> | 
|  | <entry>Library Feature</entry> | 
|  | <entry>Proposal</entry> | 
|  | <entry>Status</entry> | 
|  | <entry>SD-6 Feature Test / Notes</entry> | 
|  | </row> | 
|  | </thead> | 
|  |  | 
|  | <tbody> | 
|  |  | 
|  | <row> | 
|  | <entry namest="c1" nameend="c4" align="left"> | 
|  | <emphasis role="bold">Compile-time programming</emphasis> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  Add constexpr modifiers to functions in <code><algorithm></code> and <code><utility></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/p0202r3.html"> | 
|  | P0202R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_algorithms >= 201703L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0879r0.html"> | 
|  | P0879R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_algorithms >= 201806L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0415r1.html"> | 
|  | P0415R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_complex >= 201711L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0595r2.html"> | 
|  | P0595R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_is_constant_evaluated >= 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_dynamic_alloc >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p0980r1.pdf"> | 
|  | P0980R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_string >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1004r2.pdf"> | 
|  | P1004R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_vector >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p1006r1.pdf"> | 
|  | P1006R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_memory >= 201811L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  constexpr for <code><numeric></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/2019/p1645r1.html"> | 
|  | P1645R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_numeric >= 201911L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0858r0.html"> | 
|  | P0858R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> | 
|  | <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody> | 
|  | <row><entry> <code>__cpp_lib_array_constexpr >= 201803L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_string_view >= 201803L</code> </entry></row> | 
|  | <row><entry> (both since 9.4, see Note 1) </entry></row> | 
|  | </tbody></tgroup></informaltable> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p1023r0.pdf"> | 
|  | P1023R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_array_constexpr >= 201806</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/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 >= 201811L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_constexpr_functional >= 201811L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_constexpr_iterator >= 201811L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_constexpr_string_view >= 201811L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_constexpr_tuple >= 201811L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_constexpr_utility >= 201811L</code> </entry></row> | 
|  | </tbody></tgroup></informaltable> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1065r2.html"> | 
|  | P1065R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_constexpr_functional >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <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/p0550r2.pdf"> | 
|  | P0550R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_remove_cvref >= 201711L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0758r1.html"> | 
|  | P0758R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_is_nothrow_convertible >= 201806L</code>  (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0887r1.pdf"> | 
|  | P0887R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_type_identity >= 201806L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <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/p0318r1.pdf"> | 
|  | P0318R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_unwrap_ref >= 201811L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?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/p1285r0.pdf"> | 
|  | P1285R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> Partial </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p1353r0.html"> | 
|  | P1353R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p0340r3.html"> | 
|  | P0340R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1357r1.pdf"> | 
|  | P1357R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_bounded_array_traits >= 201902L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry> | 
|  | <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody> | 
|  | <row><entry> <code>__cpp_lib_is_layout_compatible >= 201907L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_is_pointer_interconvertible >= 201907L</code> </entry></row> | 
|  | </tbody></tgroup></informaltable> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0941r2.html"> | 
|  | P0941R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 5.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  <code><version></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/p0754r2.pdf"> | 
|  | P0754R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__has_include(<version>)</code> </entry> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <entry namest="c1" nameend="c4" align="left"> | 
|  | <emphasis role="bold">Synchronization</emphasis> | 
|  | </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> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_atomic_ref >= 201806L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0020r6.html"> | 
|  | P0020R6 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_atomic_float >= 201711L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0053r7.pdf"> | 
|  | P0053R7 </link> | 
|  | </entry> | 
|  | <entry align="center"> 11 </entry> | 
|  | <entry> <code>__cpp_lib_syncbuf >= 201711L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0753r2.pdf"> | 
|  | P0753R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 11 </entry> | 
|  | <entry> <code>__cpp_lib_syncbuf >= 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> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <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> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0718r2.html"> | 
|  | P0718R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry> <code> __cpp_lib_atomic_shared_ptr >= 201711L</code> </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> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_jthread >= 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 >= 201911L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1135r6.html"> | 
|  | P1135R6 </link> | 
|  | </entry> | 
|  | <entry align="center"> 11.1 </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 >= 201907L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_atomic_flag_test >= 201907L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_atomic_wait >= 201907L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_semaphore >= 201907L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_latch >= 201907L</code> </entry></row> | 
|  | <row><entry> <code>__cpp_lib_barrier >= 201907L</code> </entry></row> | 
|  | </tbody></tgroup></informaltable> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p0883r2.pdf"> | 
|  | P0883R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_atomic_value_initialization >= 201911L</code> </entry> | 
|  | </row> | 
|  |  | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <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/p0898r3.pdf"> | 
|  | P0898R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_concepts >= 201806L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1754r1.pdf"> | 
|  | P1754R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_concepts >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2020/p1964r2.html"> | 
|  | P1964R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_concepts >= 202002L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0896r4.pdf"> | 
|  | P0896R4 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_ranges >= 201811L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1035r7.pdf"> | 
|  | P1035R7 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_ranges >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1716r3.html"> | 
|  | P1716R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_ranges >= 201911L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p1248r1.html"> | 
|  | P1248R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1252r2.pdf"> | 
|  | P1252R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <entry> Avoid template bloat for <code>safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</entry> | 
|  | <entry> | 
|  | <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1739r4.html"> | 
|  | P1739R4 </link> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <entry namest="c1" nameend="c4" align="left"> | 
|  | <emphasis role="bold">Time, dates, calendars, time zones</emphasis> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?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/p0355r7.html"> | 
|  | P0355R7 </link> | 
|  | </entry> | 
|  | <entry/> | 
|  | <entry> <code>__cpp_lib_chrono >= 201803L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?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/2019/p1466r3.html"> | 
|  | P1466R3 </link> | 
|  | </entry> | 
|  | <entry/> | 
|  | <entry> <code>__cpp_lib_chrono >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  <code><chrono></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 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/2017/p0768r1.pdf"> | 
|  | P0768R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_three_way_comparison >= 201711L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0905r1.html"> | 
|  | P0905R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> Adding <=> 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/2019/p1614r2.html"> | 
|  | P1614R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> | 
|  | <code>__cpp_lib_three_way_comparison >= 201907L</code> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <entry namest="c1" nameend="c4" align="left"> | 
|  | <emphasis role="bold">Strings and text</emphasis> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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> | 
|  | <entry align="center"> 11 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0482r6.html"> | 
|  | P0482R6 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_char8_t >= 201811L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1423r3.html"> | 
|  | P1423R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_char8_t >= 201907L</code> </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> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry> | 
|  | <code>__cpp_lib_format >= 201907L</code> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?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/2019/p1361r2.pdf"> | 
|  | P1361R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry> | 
|  | <code>__cpp_lib_format >= 201907L</code> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <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/2019/p1652r1.html"> | 
|  | P1652R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry> | 
|  | <code>__cpp_lib_format >= 201907L</code> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0457r2.html"> | 
|  | P0457R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_starts_ends_with >= 201711L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <entry>  Update The Reference To The Unicode Standard </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> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <entry namest="c1" nameend="c4" align="left"> | 
|  | <emphasis role="bold">Containers</emphasis> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0122r7.pdf"> | 
|  | P0122R7 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_span >= 201803L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | Usability Enhancements for <classname>std::span</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/p1024r3.pdf"> | 
|  | P1024R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_span >= 201902L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p1085r2.md"> | 
|  | P1085R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry/> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> Fixed-size <code><span></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/2020/p1976r2.html"> | 
|  | P1976R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_span >= 202002L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p0325r4.html"> | 
|  | P0325R4 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_to_array >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0458r2.html"> | 
|  | P0458R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?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/p0809r0.pdf"> | 
|  | P0809R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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> | 
|  | </entry> | 
|  | <entry align="center"> 11.1 </entry> | 
|  | <entry> <code>__cpp_lib_generic_unordered_lookup >= 201811</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> Refinement Proposal for P0919 </entry> | 
|  | <entry> | 
|  | <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1690r1.html"> | 
|  | P1690R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 11.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> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_erase_if >= 201811L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0646r1.pdf"> | 
|  | P0646R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_list_remove_return_type >= 201806L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1115r3.pdf"> | 
|  | P1115R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> | 
|  | <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody> | 
|  | <row><entry> <code>__cpp_lib_erase_if >= 202002L</code> </entry></row> | 
|  | <row><entry> (defined to <code>201900L</code> for GCC 9.1 and 9.2 so use <code>> 201811L</code>) </entry></row> | 
|  | </tbody></tgroup></informaltable> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2019/p1227r2.html"> | 
|  | P1227R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_ssize >= 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 >= 201711L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0674r1.html"> | 
|  | P0674R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry> <code>__cpp_lib_shared_ptr_arrays >= 201707L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0722r3.html"> | 
|  | P0722R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_destroying_delete >= 201806L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0591r4.pdf"> | 
|  | P0591R4 </link> | 
|  | </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 >= 201811L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p1020r1.html"> | 
|  | P1020R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry> <code>__cpp_lib_smart_ptr_for_overwrite >= 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> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | <classname>polymorphic_allocator<></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_polymorphic_allocator >= 201902L</code> (since 9.4, see Note 1) | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0475r1.html"> | 
|  | P0475R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 7.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0600r1.pdf"> | 
|  | P0600R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0616r0.pdf"> | 
|  | P0616R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0767r1.html"> | 
|  | P0767R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2017/p0777r1.pdf"> | 
|  | P0777R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?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/p0551r3.pdf"> | 
|  | P0551R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  Bit-casting object representations </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> | 
|  | </entry> | 
|  | <entry align="center"> 11 </entry> | 
|  | <entry> <code>__cpp_lib_bit_cast >= 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/2018/p0556r3.html"> | 
|  | P0556R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_int_pow2 >= 201806L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2020/p1956r1.pdf"> | 
|  | P1956R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_int_pow2 >= 202002L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> Safe integral comparisons </entry> | 
|  | <entry> | 
|  | <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 >= 202002L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0619r4.html"> | 
|  | P0619R4 </link> | 
|  | </entry> | 
|  | <entry align="center"> 12.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  <code>fpos</code> Requirements </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> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  Add <code>shift</code> to <code><algorithm></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/p0769r2.pdf"> | 
|  | P0769R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_shift >= 201806L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <entry>  Standard Library Specification in a Concepts and Contracts World </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> | 
|  | </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/2018/p0892r2.html"> | 
|  | P0892R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  Eradicating unnecessarily explicit default constructors from 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/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/2018/p0771r1.pdf"> | 
|  | P0771R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 7.2 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  Simplified partial function application </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> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_bind_front >= 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/p1651r0.html"> | 
|  | P1651R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.3 </entry> | 
|  | <entry> <code>__cpp_lib_bind_front >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  <code>reference_wrapper</code> for incomplete types </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> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  Fixing <code>operator>>(basic_istream&, 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/2018/p0487r1.html"> | 
|  | P0487R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 11.1 </entry> | 
|  | <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> | 
|  | </entry> | 
|  | <entry align="center"> 8.3 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  A sane <code>variant</code> converting constructor </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> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry>  <code>visit<R></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/2018/p0655r1.pdf"> | 
|  | P0655R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p0899r1.html"> | 
|  | P0899R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> 7.1 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p1123r0.html"> | 
|  | P1123R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <entry>  Cleaning up Clause 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/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/2018/p1210r0.html"> | 
|  | P1210R0 </link> | 
|  | </entry> | 
|  | <entry align="center"> </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/2018/p1236r1.html"> | 
|  | P1236R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry/> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | 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 /> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | Mandating the Standard Library: | 
|  | Clause 16 - Language support 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/p1458r1.pdf"> | 
|  | P1458R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry/> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | Mandating the Standard Library: | 
|  | Clause 18 - Diagnostics 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/p1458r1.pdf"> | 
|  | P1459R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry/> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | Mandating the Standard Library: | 
|  | Clause 20 - Strings 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/p1462r1.html"> | 
|  | P1462R1 </link> | 
|  | </entry> | 
|  | <entry align="center"> — </entry> | 
|  | <entry/> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <entry> | 
|  | 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/> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <?dbhtml bgcolor="#C8B0B0" ?> | 
|  | <entry> | 
|  | 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> | 
|  | <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> | 
|  | Target Vectorization Policies from Parallelism V2 TS to 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/p1001r2.html"> | 
|  | P1001R2 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_execution >= 201902L</code> (since 9.4, see Note 1)</entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0912r5.html"> | 
|  | P0912R5 </link> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_coroutines >= 201902L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <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> | 
|  | <entry align="center"> 8.1 </entry> | 
|  | <entry> <code>__cpp_lib_endian >= 201907L</code> </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> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_bitops >= 201907L</code> (since 9.4, see Note 1) </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p0811r3.html"> | 
|  | P0811R3 </link> | 
|  | </entry> | 
|  | <entry align="center"> 9.1 </entry> | 
|  | <entry> <code>__cpp_lib_interpolate >= 201902L</code> </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> | 
|  | </entry> | 
|  | <entry align="center"> 10.1 </entry> | 
|  | <entry> <code>__cpp_lib_math_constants >= 201907L</code> </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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/p1208r6.pdf"> | 
|  | P1208R6 </link> | 
|  | </entry> | 
|  | <entry align="center"> 11 </entry> | 
|  | <entry> | 
|  | <code>__cpp_lib_source_location >= 201907L</code> | 
|  | </entry> | 
|  | </row> | 
|  |  | 
|  | <row> | 
|  | <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> | 
|  | </entry> | 
|  | <entry align="center"> 11 </entry> | 
|  | <entry /> | 
|  | </row> | 
|  |  | 
|  | </tbody> | 
|  | </tgroup> | 
|  | </table> | 
|  |  | 
|  | <para> | 
|  | 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> |