1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
2 xml:id="status.iso.2020" xreflabel="Status C++ 2020">
3 <?dbhtml filename="status_iso_cxx2020.html"?>
5 <info><title>C++ 2020</title>
7 <keyword>ISO C++</keyword>
8 <keyword>2020</keyword>
13 In this implementation the <literal>-std=gnu++20</literal> or
14 <literal>-std=c++20</literal> flag must be used to enable language
16 features. See <link linkend="manual.intro.using.flags">dialect</link>
17 options. The pre-defined symbol
18 <constant>__cplusplus</constant> is used to check for the
19 presence of the required flag.
23 This section describes the C++20 and library TS support in
24 mainline GCC, not in any particular release.
28 The following table lists new library features that are included in
29 the C++20 standard. The "Proposal" column provides a link to the
30 ISO C++ committee proposal that describes the feature, while the "Status"
31 column indicates the first version of GCC that contains an implementation of
32 this feature (if it has been implemented).
33 A dash (—) in the status column indicates that the changes in the proposal
34 either do not affect the code in libstdc++, or the changes are not required for conformance.
35 The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from
36 <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:
37 Feature-testing recommendations for C++</link> (where applicable)
38 or any notes about the implementation.
41 <table frame="all" xml:id="table.cxx20_features">
42 <title>C++ 2020 Library Features</title>
44 <tgroup cols="4" align="left" colsep="0" rowsep="1">
45 <colspec colname="c1"/>
46 <colspec colname="c2"/>
47 <colspec colname="c3"/>
48 <colspec colname="c4"/>
51 <entry>Library Feature</entry>
52 <entry>Proposal</entry>
54 <entry>SD-6 Feature Test / Notes</entry>
61 <entry namest="c1" nameend="c4" align="left">
62 <emphasis role="bold">Compile-time programming</emphasis>
67 <entry> Add constexpr modifiers to functions in <code><algorithm></code> and <code><utility></code> Headers </entry>
69 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html">
72 <entry align="center"> 10.1 </entry>
73 <entry> <code>__cpp_lib_constexpr_algorithms >= 201703L</code> </entry>
77 <entry> Constexpr for <code>swap</code> and swap related functions </entry>
79 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html">
82 <entry align="center"> 10.1 </entry>
83 <entry> <code>__cpp_lib_constexpr_algorithms >= 201806L</code> </entry>
87 <entry> Constexpr for <code>std::complex</code> </entry>
89 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html">
92 <entry align="center"> 9.1 </entry>
93 <entry> <code>__cpp_lib_constexpr_complex >= 201711L</code> (since 9.4, see Note 1) </entry>
97 <entry> <code>std::is_constant_evaluated()</code> </entry>
99 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html">
102 <entry align="center"> 9.1 </entry>
103 <entry> <code>__cpp_lib_is_constant_evaluated >= 201811L</code> </entry>
107 <entry> More constexpr containers </entry>
109 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html">
112 <entry align="center"> 10.1 </entry>
113 <entry> <code>__cpp_lib_constexpr_dynamic_alloc >= 201907L</code> </entry>
117 <entry> Making <code>std::string</code> constexpr </entry>
119 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf">
122 <entry align="center"> 12.1 </entry>
123 <entry> <code>__cpp_lib_constexpr_string >= 201907L</code> </entry>
127 <entry> Making <code>std::vector</code> constexpr </entry>
129 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf">
132 <entry align="center"> 12.1 </entry>
133 <entry> <code>__cpp_lib_constexpr_vector >= 201907L</code> </entry>
137 <entry> Constexpr in <code>std::pointer_traits</code> </entry>
139 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf">
142 <entry align="center"> 9.1 </entry>
143 <entry> <code>__cpp_lib_constexpr_memory >= 201811L</code> (since 9.4, see Note 1) </entry>
147 <entry> constexpr for <code><numeric></code> algorithms </entry>
149 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1645r1.html">
152 <entry align="center"> 10.1 </entry>
153 <entry> <code>__cpp_lib_constexpr_numeric >= 201911L</code> </entry>
157 <entry> Constexpr iterator requirements </entry>
159 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html">
162 <entry align="center"> 9.1 </entry>
164 <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
165 <row><entry> <code>__cpp_lib_array_constexpr >= 201803L</code> </entry></row>
166 <row><entry> <code>__cpp_lib_string_view >= 201803L</code> </entry></row>
167 <row><entry> (both since 9.4, see Note 1) </entry></row>
168 </tbody></tgroup></informaltable>
173 <entry> <code>constexpr</code> comparison operators for <code>std::array</code> </entry>
175 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf">
178 <entry align="center"> 10.1 </entry>
179 <entry> <code>__cpp_lib_array_constexpr >= 201806</code> </entry>
183 <entry> Misc constexpr bits </entry>
185 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html">
188 <entry align="center"> 10.1 </entry>
190 <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
191 <row><entry> <code>__cpp_lib_array_constexpr >= 201811L</code> </entry></row>
192 <row><entry> <code>__cpp_lib_constexpr_functional >= 201811L</code> </entry></row>
193 <row><entry> <code>__cpp_lib_constexpr_iterator >= 201811L</code> </entry></row>
194 <row><entry> <code>__cpp_lib_constexpr_string_view >= 201811L</code> </entry></row>
195 <row><entry> <code>__cpp_lib_constexpr_tuple >= 201811L</code> </entry></row>
196 <row><entry> <code>__cpp_lib_constexpr_utility >= 201811L</code> </entry></row>
197 </tbody></tgroup></informaltable>
202 <entry> <code>constexpr <emphasis>INVOKE</emphasis></code> </entry>
204 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html">
207 <entry align="center"> 10.1 </entry>
208 <entry> <code>__cpp_lib_constexpr_functional >= 201907L</code> </entry>
213 <entry> Transformation Trait <code>remove_cvref</code> </entry>
215 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf">
218 <entry align="center"> 9.1 </entry>
219 <entry> <code>__cpp_lib_remove_cvref >= 201711L</code> (since 9.4, see Note 1) </entry>
223 <entry> Implicit conversion traits and utility functions </entry>
225 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html">
228 <entry align="center"> 9.1 </entry>
229 <entry> <code>__cpp_lib_is_nothrow_convertible >= 201806L</code> (since 9.4, see Note 1) </entry>
233 <entry> The <code>identity</code> metafunction </entry>
235 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf">
238 <entry align="center"> 9.1 </entry>
239 <entry> <code>__cpp_lib_type_identity >= 201806L</code> (since 9.4, see Note 1) </entry>
244 <entry> <code>unwrap_ref_decay</code> and <code>unwrap_reference</code> </entry>
246 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf">
249 <entry align="center"> 9.1 </entry>
250 <entry> <code>__cpp_lib_unwrap_ref >= 201811L</code> (since 9.4, see Note 1) </entry>
254 <entry> Improving Completeness Requirements for Type Traits </entry>
256 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
259 <entry align="center"> — </entry>
260 <entry> Most misuses are diagnosed, but not all. </entry>
264 <entry> Missing feature test macros </entry>
266 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html">
269 <entry align="center"> 9.1 </entry>
274 <entry> Making std::underlying_type SFINAE-friendly </entry>
276 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html">
279 <entry align="center"> 9.1 </entry>
284 <entry> Traits for [Un]bounded Arrays </entry>
286 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf">
289 <entry align="center"> 9.1 </entry>
290 <entry> <code>__cpp_lib_bounded_array_traits >= 201902L</code> </entry>
294 <entry> Layout-compatibility and pointer-interconvertibility traits </entry>
296 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0466r5.pdf">
299 <entry align="center"> 12.1 </entry>
301 <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
302 <row><entry> <code>__cpp_lib_is_layout_compatible >= 201907L</code> </entry></row>
303 <row><entry> <code>__cpp_lib_is_pointer_interconvertible >= 201907L</code> </entry></row>
304 </tbody></tgroup></informaltable>
309 <entry> Integrating feature-test macros into the C++ WD </entry>
311 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html">
314 <entry align="center"> 5.1 </entry>
319 <entry> <code><version></code> </entry>
321 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf">
324 <entry align="center"> 9.1 </entry>
325 <entry> <code>__has_include(<version>)</code> </entry>
330 <entry namest="c1" nameend="c4" align="left">
331 <emphasis role="bold">Synchronization</emphasis>
336 <entry> Atomic Ref </entry>
338 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html">
341 <entry align="center"> 10.1 </entry>
342 <entry> <code>__cpp_lib_atomic_ref >= 201806L</code> </entry>
346 <entry> Floating Point Atomic </entry>
348 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html">
351 <entry align="center"> 10.1 </entry>
352 <entry> <code>__cpp_lib_atomic_float >= 201711L</code> </entry>
356 <entry> C++ Synchronized Buffered Ostream </entry>
358 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
361 <entry align="center"> 11.1 </entry>
362 <entry> <code>__cpp_lib_syncbuf >= 201711L</code> </entry>
366 <entry> Manipulators for C++ Synchronized Buffered Ostream </entry>
368 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
371 <entry align="center"> 11.1 </entry>
372 <entry> <code>__cpp_lib_syncbuf >= 201803L</code> </entry>
376 <entry> Make <code>std::memory_order</code> a scoped enumeration </entry>
378 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html">
381 <entry align="center"> 9.1 </entry>
386 <entry> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </entry>
388 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html">
391 <entry align="center"> 13.1 </entry>
396 <entry> Atomic <code>shared_ptr</code> </entry>
398 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html">
401 <entry align="center"> 12.1 </entry>
402 <entry> <code> __cpp_lib_atomic_shared_ptr >= 201711L</code> </entry>
406 <entry> std::stop_token and std::jthread </entry>
408 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf">
411 <entry align="center"> 10.1 </entry>
412 <entry> <code>__cpp_lib_jthread >= 201907L</code> </entry>
416 <entry> Rename <code>condition_variable_any</code> interruptible wait methods </entry>
418 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1869r1.html">
421 <entry align="center"> 10.1 </entry>
422 <entry> <code>__cpp_lib_jthread >= 201911L</code> </entry>
426 <entry> Atomic waiting and notifying, std::semaphore, std::latch and std::barrier </entry>
428 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html">
431 <entry align="center"> 11.1 </entry>
433 <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
434 <row><entry> <code>__cpp_lib_atomic_lock_free_type_aliases >= 201907L</code> </entry></row>
435 <row><entry> <code>__cpp_lib_atomic_flag_test >= 201907L</code> </entry></row>
436 <row><entry> <code>__cpp_lib_atomic_wait >= 201907L</code> </entry></row>
437 <row><entry> <code>__cpp_lib_semaphore >= 201907L</code> </entry></row>
438 <row><entry> <code>__cpp_lib_latch >= 201907L</code> </entry></row>
439 <row><entry> <code>__cpp_lib_barrier >= 201907L</code> </entry></row>
440 </tbody></tgroup></informaltable>
445 <entry> Fixing Atomic Initialization </entry>
447 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0883r2.pdf">
450 <entry align="center"> 10.1 </entry>
451 <entry> <code>__cpp_lib_atomic_value_initialization >= 201911L</code> </entry>
457 <entry namest="c1" nameend="c4" align="left">
458 <emphasis role="bold">Ranges and Concepts</emphasis>
463 <entry> Standard Library Concepts </entry>
465 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf">
468 <entry align="center"> 10.1 </entry>
469 <entry> <code>__cpp_lib_concepts >= 201806L</code> </entry>
473 <entry> Rename concepts to standard_case for C++20, while we still can </entry>
475 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r1.pdf">
478 <entry align="center"> 10.1 </entry>
479 <entry> <code>__cpp_lib_concepts >= 201907L</code> </entry>
483 <entry> Wording for <emphasis><code>boolean-testable</code></emphasis> </entry>
485 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1964r2.html">
488 <entry align="center"> 10.1 </entry>
489 <entry> <code>__cpp_lib_concepts >= 202002L</code> </entry>
493 <entry> The One Ranges Proposal </entry>
495 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf">
498 <entry align="center"> 10.1 </entry>
499 <entry> <code>__cpp_lib_ranges >= 201811L</code> </entry>
503 <entry> Input Range Adaptors </entry>
505 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1035r7.pdf">
508 <entry align="center"> 10.1 </entry>
509 <entry> <code>__cpp_lib_ranges >= 201907L</code> </entry>
513 <entry> <code>ranges</code> compare algorithm are over-constrained </entry>
515 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1716r3.html">
518 <entry align="center"> 10.1 </entry>
519 <entry> <code>__cpp_lib_ranges >= 201911L</code> </entry>
523 <entry> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </entry>
525 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html">
528 <entry align="center"> 10.1 </entry>
533 <entry> Ranges Design Cleanup </entry>
535 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf">
538 <entry align="center"> 10.1 </entry>
543 <entry> Avoid template bloat for <code>safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</entry>
545 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1739r4.html">
548 <entry align="center"> 12.1 </entry>
554 <entry namest="c1" nameend="c4" align="left">
555 <emphasis role="bold">Time, dates, calendars, time zones</emphasis>
560 <entry> Extending chrono to Calendars and Time Zones </entry>
562 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
565 <entry> 14.1 (see Note 2) </entry>
566 <entry> <code>__cpp_lib_chrono >= 201803L</code> </entry>
570 <entry> Miscellaneous minor fixes for chrono </entry>
572 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html">
575 <entry> 11.1 (see Note 2) </entry>
576 <entry> <code>__cpp_lib_chrono >= 201907L</code> </entry>
580 <entry> <code><chrono></code> <code>zero()</code>, <code>min()</code>, and <code>max()</code> should be <code>noexcept</code> </entry>
582 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf">
585 <entry align="center"> 9.1 </entry>
591 <entry namest="c1" nameend="c4" align="left">
592 <emphasis role="bold">Three-way comparison</emphasis>
597 <entry> Library Support for the Spaceship (Comparison) Operator </entry>
599 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf">
602 <entry align="center"> 10.1 </entry>
603 <entry> <code>__cpp_lib_three_way_comparison >= 201711L</code> </entry>
607 <entry> Symmetry for spaceship </entry>
609 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html">
612 <entry align="center"> 10.1 </entry>
617 <entry> Adding <=> to the standard library </entry>
619 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html">
622 <entry align="center"> 10.1 </entry>
624 <code>__cpp_lib_three_way_comparison >= 201907L</code>
630 <entry namest="c1" nameend="c4" align="left">
631 <emphasis role="bold">Strings and text</emphasis>
636 <entry> <code>string::reserve</code> Should Not Shrink </entry>
638 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
641 <entry align="center"> 11.1 </entry>
646 <entry> <code>char8_t</code>: A type for UTF-8 characters and strings </entry>
648 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html">
651 <entry align="center"> 9.1 </entry>
652 <entry> <code>__cpp_lib_char8_t >= 201811L</code> </entry>
656 <entry> <code>char8_t</code> backward compatibility remediation </entry>
658 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html">
661 <entry align="center"> 10.1 </entry>
662 <entry> <code>__cpp_lib_char8_t >= 201907L</code> </entry>
666 <entry> Text formatting </entry>
668 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html">
671 <entry align="center"> 13.1 </entry>
673 <code>__cpp_lib_format >= 201907L</code>
678 <entry> Integration of chrono with text formatting </entry>
680 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf">
683 <entry align="center"> 13.1 </entry>
685 <code>__cpp_lib_format >= 201907L</code>
690 <entry> Printf corner cases in <code>std::format</code> </entry>
692 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html">
695 <entry align="center"> 13.1 </entry>
697 <code>__cpp_lib_format >= 201907L</code>
702 <entry> String Prefix and Suffix Checking </entry>
704 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html">
707 <entry align="center"> 9.1 </entry>
708 <entry> <code>__cpp_lib_starts_ends_with >= 201711L</code> (since 9.4, see Note 1) </entry>
712 <entry> Update The Reference To The Unicode Standard </entry>
714 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
717 <entry align="center"> —</entry>
723 <entry namest="c1" nameend="c4" align="left">
724 <emphasis role="bold">Containers</emphasis>
729 <entry> span: bounds-safe views for sequences of objects </entry>
731 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf">
734 <entry align="center"> 10.1 </entry>
735 <entry> <code>__cpp_lib_span >= 201803L</code> </entry>
740 Usability Enhancements for <classname>std::span</classname>
743 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf">
746 <entry align="center"> 10.1 </entry>
747 <entry> <code>__cpp_lib_span >= 201902L</code> </entry>
751 <entry> Should Span be Regular? </entry>
753 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md">
756 <entry align="center"> 10.1 </entry>
761 <entry> Fixed-size <code><span></code> construction from dynamic range </entry>
763 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1976r2.html">
766 <entry align="center"> 10.1 </entry>
767 <entry> <code>__cpp_lib_span >= 202002L</code> </entry>
771 <entry> <code>std::to_array</code> </entry>
773 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0325r4.html">
776 <entry align="center"> 10.1 </entry>
777 <entry> <code>__cpp_lib_to_array >= 201907L</code> </entry>
781 <entry> Checking for Existence of an Element in Associative Containers </entry>
783 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html">
786 <entry align="center"> 9.1 </entry>
791 <entry> Comparing Unordered Containers </entry>
793 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
796 <entry align="center"> — </entry>
801 <entry> Heterogeneous lookup for unordered containers </entry>
803 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html">
806 <entry align="center"> 11.1 </entry>
807 <entry> <code>__cpp_lib_generic_unordered_lookup >= 201811</code> </entry>
811 <entry> Refinement Proposal for P0919 </entry>
813 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1690r1.html">
816 <entry align="center"> 11.1 </entry>
821 <entry> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </entry>
823 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html">
826 <entry align="center"> 9.1 </entry>
827 <entry> <code>__cpp_lib_erase_if >= 201811L</code> </entry>
831 <entry> Improving the Return Value of Erase-Like Algorithms </entry>
833 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf">
836 <entry align="center"> 9.1 </entry>
837 <entry> <code>__cpp_lib_list_remove_return_type >= 201806L</code> </entry>
841 <entry> Improving the Return Value of Erase-Like Algorithms II: Free <code>erase</code>/<code>erase_if</code> </entry>
843 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1115r3.pdf">
846 <entry align="center"> 9.1 </entry>
848 <informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
849 <row><entry> <code>__cpp_lib_erase_if >= 202002L</code> </entry></row>
850 <row><entry> (defined to <code>201900L</code> for GCC 9.1 and 9.2 so use <code>> 201811L</code>) </entry></row>
851 </tbody></tgroup></informaltable>
856 <entry> Signed ssize() functions, unsigned size() functions </entry>
858 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html">
861 <entry align="center"> 10.1 </entry>
862 <entry> <code>__cpp_lib_ssize >= 201902L</code> </entry>
867 <entry namest="c1" nameend="c4" align="left">
868 <emphasis role="bold">Memory management</emphasis>
873 <entry> Utility to convert a pointer to a raw pointer </entry>
875 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html">
878 <entry align="center"> 8.1 </entry>
879 <entry> <code>__cpp_lib_to_address >= 201711L</code> (since 9.4, see Note 1) </entry>
883 <entry> Extending <code>make_shared</code> to Support Arrays </entry>
885 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html">
888 <entry align="center"> 12.1 </entry>
889 <entry> <code>__cpp_lib_shared_ptr_arrays >= 201707L</code> </entry>
893 <entry> Efficient sized delete for variable sized classes </entry>
895 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html">
898 <entry align="center"> 9.1 </entry>
899 <entry> <code>__cpp_lib_destroying_delete >= 201806L</code> </entry>
903 <entry> Utility functions to implement uses-allocator construction </entry>
905 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf">
908 <entry align="center"> 9.1 </entry>
910 <code>std::scoped_allocator_adaptor</code> changes missing in 9.1.0
915 <entry> <code>std::assume_aligned</code> </entry>
917 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf">
920 <entry align="center"> 9.1 </entry>
921 <entry> <code>__cpp_lib_assume_aligned >= 201811L</code> (since 9.4, see Note 1) </entry>
925 <entry> Smart pointer creation with default initialization </entry>
927 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html">
930 <entry align="center"> 12.1 </entry>
931 <entry> <code>__cpp_lib_smart_ptr_for_overwrite >= 201811L</code> </entry>
935 <entry> Rename "default_init" Functions </entry>
937 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1973r1.pdf">
940 <entry align="center"> 12.1 </entry>
941 <entry> <code>__cpp_lib_smart_ptr_for_overwrite >= 201811L</code> </entry>
945 <entry> Make stateful allocator propagation more consistent for <code>operator+(basic_string)</code> </entry>
947 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html">
950 <entry align="center"> 10.1 </entry>
956 <classname>polymorphic_allocator<></classname> as a vocabulary type
959 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf">
962 <entry align="center"> 9.1 </entry>
964 <code>__cpp_lib_polymorphic_allocator >= 201902L</code> (since 9.4, see Note 1)
969 <entry> LWG 2511: guaranteed copy elision for piecewise construction </entry>
971 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html">
974 <entry align="center"> 7.1 </entry>
980 <entry namest="c1" nameend="c4" align="left">
981 <emphasis role="bold">Miscellaneous</emphasis>
986 <entry> <code>nodiscard</code> in the Library </entry>
988 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf">
991 <entry align="center"> 9.1 </entry>
996 <entry> de-pessimize legacy algorithms with <code>std::move</code> </entry>
998 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf">
1001 <entry align="center"> 9.1 </entry>
1006 <entry> Deprecate POD </entry>
1008 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html">
1011 <entry align="center"> 10.1 </entry>
1016 <entry> Treating Unnecessary <code>decay</code> </entry>
1018 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf">
1021 <entry align="center"> 9.1 </entry>
1026 <?dbhtml bgcolor="#C8B0B0" ?>
1027 <entry> Thou Shalt Not Specialize std Function Templates! </entry>
1029 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf">
1032 <entry align="center"> </entry>
1033 <entry>These changes will not be implemented.</entry>
1037 <entry> Bit-casting object representations </entry>
1039 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
1042 <entry align="center"> 11.1 </entry>
1043 <entry> <code>__cpp_lib_bit_cast >= 201806L</code> </entry>
1047 <entry> Integral power-of-2 operations </entry>
1049 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html">
1052 <entry align="center"> 9.1 </entry>
1053 <entry> <code>__cpp_lib_int_pow2 >= 201806L</code> (since 9.4, see Note 1) </entry>
1057 <entry> On the names of low-level bit manipulation functions </entry>
1059 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1956r1.pdf">
1062 <entry align="center"> 10.1 </entry>
1063 <entry> <code>__cpp_lib_int_pow2 >= 202002L</code> </entry>
1067 <entry> Safe integral comparisons </entry>
1069 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0586r2.html">
1072 <entry align="center"> 10.1 </entry>
1073 <entry> <code>__cpp_lib_integer_comparison_functions >= 202002L</code> </entry>
1077 <entry> Reviewing Deprecated Facilities of C++17 for C++20 </entry>
1079 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html">
1082 <entry align="center"> 12.1 </entry>
1087 <entry> <code>fpos</code> Requirements </entry>
1089 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html">
1092 <entry align="center"> — </entry>
1097 <entry> Add <code>shift</code> to <code><algorithm></code> </entry>
1099 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf">
1102 <entry align="center"> 10.1 </entry>
1103 <entry> <code>__cpp_lib_shift >= 201806L</code> </entry>
1107 <entry> Standard Library Specification in a Concepts and Contracts World </entry>
1109 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
1112 <entry align="center"> — </entry>
1117 <entry> <code>explicit(bool)</code> </entry>
1119 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html">
1122 <entry align="center"> — </entry>
1127 <entry> Eradicating unnecessarily explicit default constructors from the standard library </entry>
1129 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html">
1132 <entry align="center"> 9.1 </entry>
1137 <entry> <code>std::function</code> move constructor should be <code>noexcept</code> </entry>
1139 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf">
1142 <entry align="center"> 7.2 </entry>
1147 <entry> Simplified partial function application </entry>
1149 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html">
1152 <entry align="center"> 9.1 </entry>
1153 <entry> <code>__cpp_lib_bind_front >= 201811L</code> </entry>
1157 <entry> <code>bind_front</code> should not unwrap <code>reference_wrapper</code> </entry>
1159 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1651r0.html">
1162 <entry align="center"> 9.3 </entry>
1163 <entry> <code>__cpp_lib_bind_front >= 201907L</code> </entry>
1167 <entry> <code>reference_wrapper</code> for incomplete types </entry>
1169 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html">
1172 <entry align="center"> 9.1 </entry>
1177 <entry> Fixing <code>operator>>(basic_istream&, CharT*)</code> (LWG 2499) </entry>
1179 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html">
1182 <entry align="center"> 11.1 </entry>
1187 <entry> <code>variant</code> and <code>optional</code> should propagate copy/move triviality </entry>
1189 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html">
1192 <entry align="center"> 8.3 </entry>
1197 <entry> A sane <code>variant</code> converting constructor </entry>
1199 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html">
1202 <entry align="center"> 10.1 </entry>
1207 <entry> <code>visit<R></code>: Explicit Return Type for <code>visit</code> </entry>
1209 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf">
1212 <entry align="center"> 9.1 </entry>
1217 <entry> P0899R1 - LWG 3016 is not a defect </entry>
1219 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html">
1222 <entry align="center"> 7.1 </entry>
1227 <entry> Editorial Guidance for merging P0019r8 and P0528r3 </entry>
1229 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html">
1232 <entry align="center"> — </entry>
1237 <entry> Cleaning up Clause 20 </entry>
1239 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
1242 <entry align="center"> — </entry>
1247 <?dbhtml bgcolor="#C8B0B0" ?>
1248 <entry> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </entry>
1250 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html">
1253 <entry align="center"> </entry>
1258 <entry> Alternative Wording for P0907R4 Signed Integers are Two's Complement </entry>
1260 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html">
1263 <entry align="center"> — </entry>
1269 I Stream, You Stream, We All Stream for
1270 <classname>istream_iterator</classname>
1273 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0738r2.html">
1276 <entry align="center"> 10.1 </entry>
1282 Mandating the Standard Library:
1283 Clause 16 - Language support library
1286 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
1289 <entry align="center"> — </entry>
1295 Mandating the Standard Library:
1296 Clause 18 - Diagnostics library
1299 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
1302 <entry align="center"> — </entry>
1308 Mandating the Standard Library:
1309 Clause 20 - Strings library
1312 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1462r1.html">
1315 <entry align="center"> — </entry>
1321 Mandating the Standard Library:
1322 Clause 21 - Containers library
1325 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf">
1328 <entry align="center"> 10.1 </entry>
1334 Mandating the Standard Library:
1335 Clause 22 - Iterators library
1338 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf">
1341 <entry align="center"> — </entry>
1346 <entry> Make <code>create_directory()</code> Intuitive </entry>
1348 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf">
1352 <entry align="center"> 8.3 </entry>
1353 <entry> Treated as a DR for C++17 </entry>
1358 Target Vectorization Policies from Parallelism V2 TS to C++20
1361 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1001r2.html">
1364 <entry align="center"> 9.1 </entry>
1365 <entry> <code>__cpp_lib_execution >= 201902L</code> (since 9.4, see Note 1)</entry>
1369 <entry> Merge Coroutines TS into C++20 working draft </entry>
1371 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0912r5.html">
1374 <entry align="center"> 10.1 </entry>
1375 <entry> <code>__cpp_lib_coroutines >= 201902L</code> </entry>
1379 <entry> Endian just Endian </entry>
1381 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html">
1384 <entry align="center"> 8.1 </entry>
1385 <entry> <code>__cpp_lib_endian >= 201907L</code> </entry>
1389 <entry> Bit operations </entry>
1391 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html">
1394 <entry align="center"> 9.1 </entry>
1395 <entry> <code>__cpp_lib_bitops >= 201907L</code> (since 9.4, see Note 1) </entry>
1399 <entry> Well-behaved interpolation for numbers and pointers </entry>
1401 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html">
1404 <entry align="center"> 9.1 </entry>
1405 <entry> <code>__cpp_lib_interpolate >= 201902L</code> </entry>
1409 <entry> Mathematical constants </entry>
1411 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r8.pdf">
1414 <entry align="center"> 10.1 </entry>
1415 <entry> <code>__cpp_lib_math_constants >= 201907L</code> </entry>
1419 <entry> std::source_location </entry>
1421 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf">
1424 <entry align="center"> 11.1 </entry>
1426 <code>__cpp_lib_source_location >= 201907L</code>
1431 <entry> Efficient access to std::basic_stringbuf's Buffer </entry>
1433 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf">
1436 <entry align="center"> 11.1 </entry>
1445 Note 1: This feature is supported in older releases but the
1446 <code>__cpp_lib</code> macro is not defined to the right value
1447 (or not defined at all) until the version shown in parentheses.
1451 Note 2: The C++20 calendar types are supported since 11.1,
1452 time zones and UTC are supported since 13.1,
1453 and <function>chrono::parse</function> is supported since 14.1.