diff options
Diffstat (limited to 'libstdc++-v3/doc/html/manual/status.html')
-rw-r--r-- | libstdc++-v3/doc/html/manual/status.html | 280 |
1 files changed, 140 insertions, 140 deletions
diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index b2716d05865..a16fddd6136 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1107,435 +1107,435 @@ The "SD-6 Feature Test / Notes" column shows the corresponding macro or header f 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> + <span class="bold"><strong>Compile-time programming</strong></span> </td></tr><tr><td align="left"> Add constexpr modifiers to functions in <code class="code"><algorithm></code> and <code class="code"><utility></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> + P0202R3 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms >= 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> + P0879R0 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms >= 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> + P0415R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_complex >= 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> + P0595R2 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_is_constant_evaluated >= 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> + P0784R7 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_dynamic_alloc >= 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> + P0980R1 </a> </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_constexpr_string >= 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> + P1004R2 </a> </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_constexpr_vector >= 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> + P1006R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_memory >= 201811L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> constexpr for <code class="code"><numeric></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> + P1645R1 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_numeric >= 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> + 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 >= 201803L</code> </td></tr><tr><td> <code class="code">__cpp_lib_string_view >= 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"> + <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_array_constexpr >= 201803L</code> </td></tr><tr><td> <code class="code">__cpp_lib_string_view >= 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> + P1023R0 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_array_constexpr >= 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> + 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 >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_functional >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_iterator >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_string_view >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_tuple >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_utility >= 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"> + <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_array_constexpr >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_functional >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_iterator >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_string_view >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_tuple >= 201811L</code> </td></tr><tr><td> <code class="code">__cpp_lib_constexpr_utility >= 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> + P1065R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_functional >= 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> + P0550R2 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_remove_cvref >= 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> + P0758R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_is_nothrow_convertible >= 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> + P0887R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_type_identity >= 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> + P0318R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_unwrap_ref >= 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> + 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> + 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> + 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> + P1357R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bounded_array_traits >= 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> + 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 >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_is_pointer_interconvertible >= 201907L</code> </td></tr></tbody></table></div> + <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_is_layout_compatible >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_is_pointer_interconvertible >= 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> + P0941R2 </a> </td><td align="center"> 5.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code"><version></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> + P0754R2 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__has_include(<version>)</code> </td></tr><tr><td colspan="4" align="left"> - <span class="bold"><strong>Synchronization</strong></span> + <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> + P0019R8 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_ref >= 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> + P0020R6 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_float >= 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> + P0053R7 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_syncbuf >= 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> + P0753R2 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_syncbuf >= 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> + 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> + 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> + P0718R2 </a> </td><td align="center"> </td><td align="left"> <code class="code"> __cpp_lib_atomic_shared_ptr >= 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> + P0660R10 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_jthread >= 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> + P1869R1 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_jthread >= 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> + 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 >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_atomic_flag_test >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_atomic_wait >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_semaphore >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_latch >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_barrier >= 201907L</code> </td></tr></tbody></table></div> + <div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_atomic_lock_free_type_aliases >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_atomic_flag_test >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_atomic_wait >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_semaphore >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_latch >= 201907L</code> </td></tr><tr><td> <code class="code">__cpp_lib_barrier >= 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> + P0883R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_value_initialization >= 201911L</code> </td></tr><tr><td colspan="4" align="left"> - <span class="bold"><strong>Ranges and Concepts</strong></span> + <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> + P0898R3 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts >= 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> + P1754R1 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts >= 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> + P1964R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_concepts >= 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> + P0896R4 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ranges >= 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> + P1035R7 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ranges >= 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> + P1716R3 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ranges >= 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> + 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> + 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> + <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> + P0355R7 </a> </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono >= 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> + P1466R3 </a> </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono >= 201907L</code> </td></tr><tr><td align="left"> <code class="code"><chrono></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> + 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> + <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> + P0768R1 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_three_way_comparison >= 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> + P0905R1 </a> </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Adding <=> 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> + P1614R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_three_way_comparison >= 201907L</code> </td></tr><tr><td colspan="4" align="left"> - <span class="bold"><strong>Strings and text</strong></span> + <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> + 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> + P0482R6 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t >= 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> + P1423R3 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t >= 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> + P0645R10 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format >= 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> + P1361R2 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format >= 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> + P1652R1 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format >= 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> + P0457R2 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_starts_ends_with >= 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> + 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> + <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> + P0122R7 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span >= 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> + P1024R3 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span >= 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> + P1085R2 </a> </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Fixed-size <code class="code"><span></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> + P1976R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_span >= 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> + P0325R4 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_to_array >= 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> + 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> + 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> + P0919R3 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_generic_unordered_lookup >= 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> + P1209R0 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_erase_if >= 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> + P0646R1 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_list_remove_return_type >= 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> + 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 >= 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">> 201811L</code>) </td></tr></tbody></table></div> - </td></tr><tr><td align="left"> Signed ssize() functions, unsigned size() functions </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 >= 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">> 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> + P1227R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_ssize >= 201902L</code> </td></tr><tr><td colspan="4" align="left"> - <span class="bold"><strong>Memory management</strong></span> + <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> + P0653R2 </a> </td><td align="center"> 8.1 </td><td align="left"> <code class="code">__cpp_lib_to_address >= 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> + P0674R1 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_shared_ptr_arrays >= 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> + P0722R3 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_destroying_delete >= 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> + 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> + P1007R3 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_assume_aligned >= 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> + P1020R1 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_smart_ptr_for_overwrite >= 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> + P1165R1 </a> </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="classname">polymorphic_allocator<></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> + P0339R6 </a> </td><td align="center"> 9.1 </td><td align="left"> - <code class="code">__cpp_lib_polymorphic_allocator >= 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"> + <code class="code">__cpp_lib_polymorphic_allocator >= 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> + 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> + <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> + 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> + 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> + 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> + 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> + P0476R2 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_bit_cast >= 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> + P0556R3 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_int_pow2 >= 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> + P1956R1 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_int_pow2 >= 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> + P0586R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_integer_comparison_functions >= 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> + 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> + 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"><algorithm></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> + P0769R2 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_shift >= 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> + 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> + 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> + 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> + 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> + P0356R5 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bind_front >= 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> + P1651R0 </a> </td><td align="center"> 9.3 </td><td align="left"> <code class="code">__cpp_lib_bind_front >= 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> + 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>>(basic_istream&, 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> + 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<R></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> + 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> + 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> + 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> + 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> + 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> + 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> + 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> + 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> + 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> + 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> + 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> + </a> </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> + P1001R2 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_execution >= 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> + P0912R5 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_coroutines >= 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> + P0463R1 </a> </td><td align="center"> 8.1 </td><td align="left"> <code class="code">__cpp_lib_endian >= 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> + P0553R4 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_bitops >= 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> + P0811R3 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_interpolate >= 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> + P0631R8 </a> </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_math_constants >= 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> + P1208R6 </a> </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_source_location >= 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: This feature is supported in older releases but the <code class="code">__cpp_lib</code> macro is not defined to the right value |