status_cxx2020.xml revision 1.1.1.1
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"?>
4
5<info><title>C++ 202a</title>
6  <keywordset>
7    <keyword>ISO C++</keyword>
8    <keyword>2020</keyword>
9  </keywordset>
10</info>
11
12<para>
13In this implementation the <literal>-std=gnu++2a</literal> or
14<literal>-std=c++2a</literal> flag must be used to enable language
15and library
16features. See <link linkend="manual.intro.using.flags">dialect</link>
17options. The pre-defined symbol
18<constant>__cplusplus</constant> is used to check for the
19presence of the required flag.
20</para>
21
22<para>
23This section describes the C++20 and library TS support in the GCC 9 series.
24</para>
25
26<para>
27The following table lists new library features that have been accepted into
28the C++2a working draft. The "Proposal" column provides a link to the
29ISO C++ committee proposal that describes the feature, while the "Status"
30column indicates the first version of GCC that contains an implementation of
31this feature (if it has been implemented).
32The "SD-6 Feature Test" column shows the corresponding macro or header from
33<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:
34Feature-testing recommendations for C++</link>.
35</para>
36
37<table frame="all" xml:id="table.cxx20_status">
38<title>C++ 2020 Implementation Status</title>
39
40<tgroup cols="4" align="left" colsep="0" rowsep="1">
41<colspec colname="c1"/>
42<colspec colname="c2"/>
43<colspec colname="c3"/>
44<colspec colname="c4"/>
45  <thead>
46    <row>
47      <entry>Library Feature</entry>
48      <entry>Proposal</entry>
49      <entry>Status</entry>
50      <entry>SD-6 Feature Test</entry>
51    </row>
52  </thead>
53
54  <tbody>
55
56    <row>
57      <entry>  Endian just Endian </entry>
58      <entry>
59        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html">
60	P0463R1
61	</link>
62      </entry>
63      <entry align="center"> 8.1 </entry>
64      <entry />
65    </row>
66
67    <row>
68      <?dbhtml bgcolor="#C8B0B0" ?>
69      <entry>  Extending <code>make_shared</code> to Support Arrays </entry>
70      <entry>
71        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html">
72	P0674R1
73	</link>
74      </entry>
75      <entry align="center"> </entry>
76      <entry />
77    </row>
78
79    <row>
80      <?dbhtml bgcolor="#C8B0B0" ?>
81      <entry>  Floating Point Atomic </entry>
82      <entry>
83        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html">
84	P0020R6
85	</link>
86      </entry>
87      <entry align="center"> </entry>
88      <entry />
89    </row>
90
91    <row>
92      <?dbhtml bgcolor="#C8B0B0" ?>
93      <entry>  C++ Synchronized Buffered Ostream </entry>
94      <entry>
95        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
96	P0053R7
97	</link>
98      </entry>
99      <entry align="center"> </entry>
100      <entry />
101    </row>
102
103    <row>
104      <?dbhtml bgcolor="#C8B0B0" ?>
105      <entry>  Add constexpr modifiers to functions in <code>&lt;algorithm&gt;</code> and <code>&lt;utility&gt;</code> Headers </entry>
106      <entry>
107        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html">
108	P0202R3
109	</link>
110      </entry>
111      <entry align="center"> </entry>
112      <entry />
113    </row>
114
115    <row>
116      <entry>  Constexpr for <code>std::complex</code> </entry>
117      <entry>
118        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html">
119	P0415R1
120	</link>
121      </entry>
122      <entry align="center"> 9.1 </entry>
123      <entry />
124    </row>
125
126    <row>
127      <entry>  Make <code>std::memory_order</code> a scoped enumeration </entry>
128      <entry>
129        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html">
130	P0439R0
131	</link>
132      </entry>
133      <entry align="center"> 9.1 </entry>
134      <entry />
135    </row>
136
137    <row>
138      <entry>  String Prefix and Suffix Checking </entry>
139      <entry>
140        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html">
141	P0457R2
142	</link>
143      </entry>
144      <entry align="center"> 9.1 </entry>
145      <entry />
146    </row>
147
148    <row>
149      <entry>  Transformation Trait <code>remove_cvref</code> </entry>
150      <entry>
151        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf">
152	P0550R2
153	</link>
154      </entry>
155      <entry align="center"> 9.1 </entry>
156      <entry />
157    </row>
158
159    <row>
160      <entry>  <code>nodiscard</code> in the Library </entry>
161      <entry>
162        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf">
163	P0600R1
164	</link>
165      </entry>
166      <entry align="center"> 9.1 </entry>
167      <entry />
168    </row>
169
170    <row>
171      <entry>  de-pessimize legacy algorithms with <code>std::move</code> </entry>
172      <entry>
173        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf">
174	P0616R0
175	</link>
176      </entry>
177      <entry align="center"> 9.1 </entry>
178      <entry />
179    </row>
180
181    <row>
182      <entry>  Utility to convert a pointer to a raw pointer </entry>
183      <entry>
184        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html">
185	P0653R2
186	</link>
187      </entry>
188      <entry align="center"> 8.1 </entry>
189      <entry />
190    </row>
191
192    <row>
193      <?dbhtml bgcolor="#C8B0B0" ?>
194      <entry>  Atomic <code>shared_ptr</code> </entry>
195      <entry>
196        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html">
197	P0718R2
198	</link>
199      </entry>
200      <entry align="center"> </entry>
201      <entry />
202    </row>
203
204    <row>
205      <?dbhtml bgcolor="#C8B0B0" ?>
206      <entry>  Deprecate POD </entry>
207      <entry>
208        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html">
209	P0767R1
210	</link>
211      </entry>
212      <entry align="center"> </entry>
213      <entry />
214    </row>
215
216    <row>
217      <?dbhtml bgcolor="#C8B0B0" ?>
218      <entry>  Library Support for the Spaceship (Comparison) Operator </entry>
219      <entry>
220        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf">
221	P0768R1
222	</link>
223      </entry>
224      <entry align="center"> </entry>
225      <entry />
226    </row>
227
228    <row>
229      <entry>  Treating Unnecessary <code>decay</code> </entry>
230      <entry>
231        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf">
232	P0777R1
233	</link>
234      </entry>
235      <entry align="center"> 9.1 </entry>
236      <entry />
237    </row>
238
239    <row>
240      <?dbhtml bgcolor="#C8B0B0" ?>
241      <entry>  <code>&lt;span&gt;</code> </entry>
242      <entry>
243        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf">
244	P0122R7
245	</link>
246      </entry>
247      <entry align="center"> </entry>
248      <entry />
249    </row>
250
251    <row>
252      <?dbhtml bgcolor="#C8B0B0" ?>
253      <entry>  Extending chrono to Calendars and Time Zones </entry>
254      <entry>
255        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
256	P0355R7
257	</link>
258      </entry>
259      <entry align="center"> </entry>
260      <entry />
261    </row>
262
263    <row>
264      <?dbhtml bgcolor="#C8B0B0" ?>
265      <entry>  Thou Shalt Not Specialize std Function Templates! </entry>
266      <entry>
267        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf">
268	P0551R3
269	</link>
270      </entry>
271      <entry align="center"> </entry>
272      <entry />
273    </row>
274
275    <row>
276      <?dbhtml bgcolor="#C8B0B0" ?>
277      <entry>  Manipulators for C++ Synchronized Buffered Ostream </entry>
278      <entry>
279        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
280	P0753R2
281	</link>
282      </entry>
283      <entry align="center"> </entry>
284      <entry />
285    </row>
286
287    <row>
288      <entry>  <code>&lt;version&gt;</code> </entry>
289      <entry>
290        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf">
291	P0754R2
292	</link>
293      </entry>
294      <entry align="center"> 9.1 </entry>
295      <entry />
296    </row>
297
298    <row>
299      <?dbhtml bgcolor="#C8B0B0" ?>
300      <entry>  Comparing Unordered Containers </entry>
301      <entry>
302        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
303	P0809R0
304	</link>
305      </entry>
306      <entry align="center"> </entry>
307      <entry />
308    </row>
309
310    <row>
311      <entry>  Constexpr iterator requirements </entry>
312      <entry>
313        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html">
314	P0858R0
315	</link>
316      </entry>
317      <entry align="center"> 9.1 </entry>
318      <entry> <code>__cpp_lib_string_view &gt;= 201803L</code>
319      and <code>__cpp_lib_array_constexpr &gt;= 201803L</code> </entry>
320    </row>
321
322    <row>
323      <?dbhtml bgcolor="#C8B0B0" ?>
324      <entry>  Symmetry for spaceship </entry>
325      <entry>
326        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html">
327	P0905R1
328	</link>
329      </entry>
330      <entry align="center"> </entry>
331      <entry />
332    </row>
333
334    <row>
335      <?dbhtml bgcolor="#C8B0B0" ?>
336      <entry>  <code>string::reserve</code> Should Not Shrink </entry>
337      <entry>
338        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
339	P0966R1
340	</link>
341      </entry>
342      <entry align="center"> </entry>
343      <entry />
344    </row>
345
346    <row>
347      <?dbhtml bgcolor="#C8B0B0" ?>
348      <entry>  Atomic Ref </entry>
349      <entry>
350        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html">
351	P0019R8
352	</link>
353      </entry>
354      <entry align="center"> </entry>
355      <entry />
356    </row>
357
358    <row>
359      <entry>  Checking for Existence of an Element in Associative Containers </entry>
360      <entry>
361        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html">
362	P0458R2
363	</link>
364      </entry>
365      <entry align="center"> 9.1 </entry>
366      <entry />
367    </row>
368
369    <row>
370      <entry>  LWG 2511: guaranteed copy elision for piecewise construction </entry>
371      <entry>
372        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html">
373	P0475R1
374	</link>
375      </entry>
376      <entry align="center"> 7.1 </entry>
377      <entry />
378    </row>
379
380    <row>
381      <?dbhtml bgcolor="#C8B0B0" ?>
382      <entry>  Bit-casting object representations </entry>
383      <entry>
384        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
385	P0476R2
386	</link>
387      </entry>
388      <entry align="center"> </entry>
389      <entry />
390    </row>
391
392    <row>
393      <?dbhtml bgcolor="#C8B0B0" ?>
394      <entry>  The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </entry>
395      <entry>
396        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html">
397	P0528R3
398	</link>
399      </entry>
400      <entry align="center"> </entry>
401      <entry />
402    </row>
403
404    <row>
405      <?dbhtml bgcolor="#C8B0B0" ?>
406      <entry>  Support for contract based programming in C++ </entry>
407      <entry>
408        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0542r5.html">
409	P0542R5
410	</link>
411      </entry>
412      <entry align="center"> </entry>
413      <entry />
414    </row>
415
416    <row>
417      <entry>  Integral power-of-2 operations </entry>
418      <entry>
419        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html">
420	P0556R3
421	</link>
422      </entry>
423      <entry align="center"> 9.1 </entry>
424      <entry />
425    </row>
426
427    <row>
428      <?dbhtml bgcolor="#C8B0B0" ?>
429      <entry>  Reviewing Deprecated Facilities of C++17 for C++20 </entry>
430      <entry>
431        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html">
432	P0619R4
433	</link>
434      </entry>
435      <entry align="center"> </entry>
436      <entry />
437    </row>
438
439    <row>
440      <entry>  Improving the Return Value of Erase-Like Algorithms </entry>
441      <entry>
442        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf">
443	P0646R1
444	</link>
445      </entry>
446      <entry align="center"> 9.1 </entry>
447      <entry> <code>__cpp_lib_list_remove_return_type &gt;= 201806L</code> </entry>
448    </row>
449
450    <row>
451      <entry>  Efficient sized delete for variable sized classes </entry>
452      <entry>
453        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html">
454	P0722R3
455	</link>
456      </entry>
457      <entry align="center"> 9.1 </entry>
458      <entry> <code>__cpp_lib_destroying_delete &gt;= 201806L</code> </entry>
459    </row>
460
461    <row>
462      <entry>  Implicit conversion traits and utility functions </entry>
463      <entry>
464        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html">
465	P0758R1
466	</link>
467      </entry>
468      <entry align="center"> 9.1 </entry>
469      <entry />
470    </row>
471
472    <row>
473      <entry>  <code>fpos</code> Requirements </entry>
474      <entry>
475        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html">
476	P0759R1
477	</link>
478      </entry>
479      <entry align="center"> Note 1 </entry>
480      <entry />
481    </row>
482
483    <row>
484      <?dbhtml bgcolor="#C8B0B0" ?>
485      <entry>  Add <code>shift</code> to <code>&lt;algorithm&gt;</code> </entry>
486      <entry>
487        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf">
488	P0769R2
489	</link>
490      </entry>
491      <entry align="center"> </entry>
492      <entry />
493    </row>
494
495    <row>
496      <?dbhtml bgcolor="#C8B0B0" ?>
497      <entry>  Standard Library Specification in a Concepts and Contracts World </entry>
498      <entry>
499        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
500	P0788R3
501	</link>
502      </entry>
503      <entry align="center"> </entry>
504      <entry />
505    </row>
506
507    <row>
508      <?dbhtml bgcolor="#C8B0B0" ?>
509      <entry>  Constexpr for <code>swap</code> and swap related functions </entry>
510      <entry>
511        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html">
512	P0879R0
513	</link>
514      </entry>
515      <entry align="center"> </entry>
516      <entry />
517    </row>
518
519    <row>
520      <entry>  The <code>identity</code> metafunction </entry>
521      <entry>
522        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf">
523	P0887R1
524	</link>
525      </entry>
526      <entry align="center"> 9.1 </entry>
527      <entry />
528    </row>
529
530    <row>
531      <entry>  <code>explicit(bool)</code> </entry>
532      <entry>
533        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html">
534	P0892R2
535	</link>
536      </entry>
537      <entry align="center"> Note 1 </entry>
538      <entry />
539    </row>
540
541    <row>
542      <?dbhtml bgcolor="#C8B0B0" ?>
543      <entry>  Standard Library Concepts </entry>
544      <entry>
545        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf">
546	P0898R3
547	</link>
548      </entry>
549      <entry align="center"> </entry>
550      <entry />
551    </row>
552
553    <row>
554      <entry>  Eradicating unnecessarily explicit default constructors from the standard library </entry>
555      <entry>
556        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html">
557	P0935R0
558	</link>
559      </entry>
560      <entry align="center"> 9.1 </entry>
561      <entry />
562    </row>
563
564    <row>
565      <entry>  Integrating feature-test macros into the C++ WD </entry>
566      <entry>
567        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html">
568	P0941R2
569	</link>
570      </entry>
571      <entry align="center"> 5.1 </entry>
572      <entry />
573    </row>
574
575    <row>
576      <?dbhtml bgcolor="#C8B0B0" ?>
577      <entry>  <code>constexpr</code> comparison operators for <code>std::array</code> </entry>
578      <entry>
579        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf">
580	P1023R0
581	</link>
582      </entry>
583      <entry align="center"> </entry>
584      <entry />
585    </row>
586
587    <row>
588      <?dbhtml bgcolor="#C8B0B0" ?>
589      <entry>  Update The Reference To The Unicode Standard </entry>
590      <entry>
591        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
592	P1025R1
593	</link>
594      </entry>
595      <entry align="center"> </entry>
596      <entry />
597    </row>
598
599    <row>
600      <?dbhtml bgcolor="#C8B0B0" ?>
601      <entry>  Consistency improvements for <code>&lt;=&gt;</code> and other comparison operators </entry>
602      <entry>
603        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1120r0.html">
604	P1120R0
605	</link>
606      </entry>
607      <entry align="center"> </entry>
608      <entry />
609    </row>
610
611    <row>
612      <entry>  <code>unwrap_ref_decay</code> and <code>unwrap_reference</code> </entry>
613      <entry>
614        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf">
615	P0318R1
616	</link>
617      </entry>
618      <entry align="center"> 9.1 </entry>
619      <entry />
620    </row>
621
622    <row>
623      <entry>  Simplified partial function application </entry>
624      <entry>
625        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html">
626	P0356R5
627	</link>
628      </entry>
629      <entry align="center"> 9.1 </entry>
630      <entry> <code>__cpp_lib_bind_front &gt;= 201811L</code> </entry>
631    </row>
632
633    <row>
634      <entry>  <code>reference_wrapper</code> for incomplete types </entry>
635      <entry>
636        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html">
637	P0357R3
638	</link>
639      </entry>
640      <entry align="center"> 9.1 </entry>
641      <entry />
642    </row>
643
644    <row>
645      <entry>  <code>char8_t</code>: A type for UTF-8 characters and strings </entry>
646      <entry>
647        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html">
648	P0482R6
649	</link>
650      </entry>
651      <entry align="center"> 9.1 </entry>
652      <entry> <code>__cpp_lib_char8_t &gt;= 201811L</code> </entry>
653    </row>
654
655    <row>
656      <?dbhtml bgcolor="#C8B0B0" ?>
657      <entry>  Fixing <code>operator&gt;&gt;(basic_istream&amp;, CharT*)</code> (LWG 2499) </entry>
658      <entry>
659        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html">
660	P0487R1
661	</link>
662      </entry>
663      <entry align="center"> </entry>
664      <entry />
665    </row>
666
667    <row>
668      <entry>  Utility functions to implement uses-allocator construction </entry>
669      <entry>
670        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf">
671	P0591R4
672	</link>
673      </entry>
674      <entry align="center"> 9.1 </entry>
675      <entry>
676        <code>std::scoped_allocator_adaptor</code> changes missing in 9.1.0
677      </entry>
678    </row>
679
680    <row>
681      <entry>  P0595R2 <code>std::is_constant_evaluated()</code> </entry>
682      <entry>
683        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html">
684	P0595R2
685	</link>
686      </entry>
687      <entry align="center"> 9.1 </entry>
688      <entry />
689    </row>
690
691    <row>
692      <entry>  <code>variant</code> and <code>optional</code> should propagate copy/move triviality </entry>
693      <entry>
694        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html">
695	P0602R4
696	</link>
697      </entry>
698      <entry align="center"> 8.3 </entry>
699      <entry />
700    </row>
701
702    <row>
703      <?dbhtml bgcolor="#C8B0B0" ?>
704      <entry>  A sane <code>variant</code> converting constructor </entry>
705      <entry>
706        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html">
707	P0608R3
708	</link>
709      </entry>
710      <entry align="center"> </entry>
711      <entry />
712    </row>
713
714    <row>
715      <entry>  <code>visit&lt;R&gt;</code>: Explicit Return Type for <code>visit</code> </entry>
716      <entry>
717        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf">
718	P0655R1
719	</link>
720      </entry>
721      <entry align="center"> 9.1 </entry>
722      <entry />
723    </row>
724
725    <row>
726      <entry>  <code>std::function</code> move constructor should be <code>noexcept</code> </entry>
727      <entry>
728        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf">
729	P0771R1
730	</link>
731      </entry>
732      <entry align="center"> 7.2 </entry>
733      <entry />
734    </row>
735
736    <row>
737      <?dbhtml bgcolor="#C8B0B0" ?>
738      <entry>  The One Ranges Proposal </entry>
739      <entry>
740        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf">
741	P0896R4
742	</link>
743      </entry>
744      <entry align="center"> </entry>
745      <entry />
746    </row>
747
748    <row>
749      <entry>  P0899R1 - LWG 3016 is not a defect </entry>
750      <entry>
751        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html">
752	P0899R1
753	</link>
754      </entry>
755      <entry align="center"> 7.1 </entry>
756      <entry />
757    </row>
758
759    <row>
760      <?dbhtml bgcolor="#C8B0B0" ?>
761      <entry>  Heterogeneous lookup for unordered containers </entry>
762      <entry>
763        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html">
764	P0919R3
765	</link>
766      </entry>
767      <entry align="center"> </entry>
768      <entry />
769    </row>
770
771    <row>
772      <entry>  <code>&lt;chrono&gt;</code> <code>zero()</code>, <code>min()</code>, and <code>max()</code> should be <code>noexcept</code> </entry>
773      <entry>
774        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf">
775	P0972R0
776	</link>
777      </entry>
778      <entry align="center"> 9.1 </entry>
779      <entry />
780    </row>
781
782    <row>
783      <entry>  Constexpr in <code>std::pointer_traits</code> </entry>
784      <entry>
785        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf">
786	P1006R1
787	</link>
788      </entry>
789      <entry align="center"> 9.1 </entry>
790      <entry />
791    </row>
792
793    <row>
794      <entry>  <code>std::assume_aligned</code> </entry>
795      <entry>
796        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf">
797	P1007R3
798	</link>
799      </entry>
800      <entry align="center"> 9.1 </entry>
801      <entry />
802    </row>
803
804    <row>
805      <?dbhtml bgcolor="#C8B0B0" ?>
806      <entry>  Smart pointer creation with default initialization </entry>
807      <entry>
808        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html">
809	P1020R1
810	</link>
811      </entry>
812      <entry align="center"> </entry>
813      <entry />
814    </row>
815
816    <row>
817      <?dbhtml bgcolor="#C8B0B0" ?>
818      <entry>  Misc constexpr bits </entry>
819      <entry>
820        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html">
821	P1032R1
822	</link>
823      </entry>
824      <entry align="center"> </entry>
825      <entry />
826    </row>
827
828    <row>
829      <?dbhtml bgcolor="#C8B0B0" ?>
830      <entry>  Should Span be Regular? </entry>
831      <entry>
832        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md">
833	P1085R2
834	</link>
835      </entry>
836      <entry align="center"> </entry>
837      <entry />
838    </row>
839
840    <row>
841      <entry>  Editorial Guidance for merging P0019r8 and P0528r3 </entry>
842      <entry>
843        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html">
844	P1123R0
845	</link>
846      </entry>
847      <entry align="center"> Note 1 </entry>
848      <entry />
849    </row>
850
851    <row>
852      <?dbhtml bgcolor="#C8B0B0" ?>
853      <entry>  Cleaning up Clause 20 </entry>
854      <entry>
855        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
856	P1148R0
857	</link>
858      </entry>
859      <entry align="center"> </entry>
860      <entry />
861    </row>
862
863    <row>
864      <?dbhtml bgcolor="#C8B0B0" ?>
865      <entry>  Make stateful allocator propagation more consistent for <code>operator+(basic_string)</code> </entry>
866      <entry>
867        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html">
868	P1165R1
869	</link>
870      </entry>
871      <entry align="center"> </entry>
872      <entry />
873    </row>
874
875    <row>
876      <entry>  Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </entry>
877      <entry>
878        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html">
879	P1209R0
880	</link>
881      </entry>
882      <entry align="center"> 9.1 </entry>
883      <entry> <code>__cpp_lib_erase_if &gt;= 201811L</code> </entry>
884    </row>
885
886    <row>
887      <?dbhtml bgcolor="#C8B0B0" ?>
888      <entry>  Completing the Rebase of Library Fundamentals, Version 3, Working Draft </entry>
889      <entry>
890        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html">
891	P1210R0
892	</link>
893      </entry>
894      <entry align="center"> </entry>
895      <entry />
896    </row>
897
898    <row>
899      <?dbhtml bgcolor="#C8B0B0" ?>
900      <entry>  Alternative Wording for P0907R4 Signed Integers are Two's Complement </entry>
901      <entry>
902        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html">
903	P1236R1
904	</link>
905      </entry>
906      <entry align="center"> </entry>
907      <entry />
908    </row>
909
910    <row>
911      <?dbhtml bgcolor="#C8B0B0" ?>
912      <entry>  Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </entry>
913      <entry>
914        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html">
915	P1248R1
916	</link>
917      </entry>
918      <entry align="center"> </entry>
919      <entry />
920    </row>
921
922    <row>
923      <?dbhtml bgcolor="#C8B0B0" ?>
924      <entry>  Improving Completeness Requirements for Type Traits </entry>
925      <entry>
926        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
927	P1285R0
928	</link>
929      </entry>
930      <entry align="center"> </entry>
931      <entry />
932    </row>
933
934    <row>
935      <entry>  Well-behaved interpolation for numbers and pointers </entry>
936      <entry>
937        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html">
938	P0811R3
939	</link>
940      </entry>
941      <entry align="center"> 9.1 </entry>
942      <entry> <code>__cpp_lib_interpolate &gt;= 201902L</code> </entry>
943    </row>
944
945    <row>
946      <entry>  Missing feature test macros </entry>
947      <entry>
948        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html">
949	P1353R0
950	</link>
951      </entry>
952      <entry align="center"> 9.1 </entry>
953      <entry />
954    </row>
955
956    <row>
957      <entry>
958        <classname>polymorphic_allocator&lt;&gt;</classname>
959        as a vocabulary type
960      </entry>
961      <entry>
962        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf">
963        P0339R6
964	</link>
965      </entry>
966      <entry align="center"> 9.1 </entry>
967      <entry />
968    </row>
969
970    <row>
971      <entry> Making std::underlying_type SFINAE-friendly </entry>
972      <entry>
973        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html">
974        P0340R3
975	</link>
976      </entry>
977      <entry align="center"> 9.1 </entry>
978      <entry />
979    </row>
980
981    <row>
982      <entry> Make <code>create_directory()</code> Intuitive </entry>
983      <entry>
984        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf">
985        P1164R1
986	</link>
987      </entry>
988      <entry align="center"> 8.3 </entry>
989      <entry> Treated as a DR for C++17 </entry>
990    </row>
991
992    <row>
993      <entry> Traits for [Un]bounded Arrays </entry>
994      <entry>
995        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf">
996        P1357R1
997	</link>
998      </entry>
999      <entry align="center"> 9.1 </entry>
1000      <entry> <code>__cpp_lib_bounded_array_traits &gt;= 201902L</code> </entry>
1001    </row>
1002
1003  </tbody>
1004</tgroup>
1005</table>
1006
1007<para>
1008Note 1: The changes in the proposal either do not affect the code in libstdc++,
1009or the changes are not required for conformance.
1010</para>
1011
1012
1013<section xml:id="iso.2020.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
1014
1015   <para>For behaviour which is also specified by previous standards,
1016      see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
1017      Specific Behavior</link>, <link linkend="iso.2011.specific">C++
1018      2011 Implementation Specific Behavior</link> and <link
1019      linkend="iso.2017.specific">C++ 2017 Implementation Specific
1020      Behavior</link>.
1021      This section only documents behaviour which is new in the 202a draft.
1022   </para>
1023
1024
1025</section>
1026
1027</section>
1028