]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/doc/xml/manual/status_cxx2020.xml
Define std::ssize for C++20 (P1227R2)
[thirdparty/gcc.git] / libstdc++-v3 / doc / xml / manual / status_cxx2020.xml
CommitLineData
656ac8b7 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 mainline GCC SVN,
24not in any particular release.
25</para>
26
27<para>
28The following table lists new library features that have been accepted into
29the C++2a working draft. The "Proposal" column provides a link to the
30ISO C++ committee proposal that describes the feature, while the "Status"
31column indicates the first version of GCC that contains an implementation of
32this feature (if it has been implemented).
33The "SD-6 Feature Test" column shows the corresponding macro or header from
34<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:
35Feature-testing recommendations for C++</link>.
36</para>
37
38<table frame="all" xml:id="table.cxx20_status">
39<title>C++ 2020 Implementation Status</title>
40
41<tgroup cols="4" align="left" colsep="0" rowsep="1">
42<colspec colname="c1"/>
43<colspec colname="c2"/>
44<colspec colname="c3"/>
45<colspec colname="c4"/>
46 <thead>
47 <row>
48 <entry>Library Feature</entry>
49 <entry>Proposal</entry>
50 <entry>Status</entry>
51 <entry>SD-6 Feature Test</entry>
52 </row>
53 </thead>
54
55 <tbody>
56
57 <row>
58 <entry> Endian just Endian </entry>
59 <entry>
60 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html">
61 P0463R1
62 </link>
63 </entry>
64 <entry align="center"> 8.1 </entry>
65 <entry />
66 </row>
67
68 <row>
69 <?dbhtml bgcolor="#C8B0B0" ?>
70 <entry> Extending <code>make_shared</code> to Support Arrays </entry>
71 <entry>
72 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html">
73 P0674R1
74 </link>
75 </entry>
76 <entry align="center"> </entry>
77 <entry />
78 </row>
79
80 <row>
656ac8b7 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>
6e6ad5a7 87 <entry align="center"> 10.1 </entry>
656ac8b7 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>
656ac8b7 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>
f24442bd 133 <entry align="center"> 9.1 </entry>
656ac8b7 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>
656ac8b7 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>
dae923a7 166 <entry align="center"> 9.1 </entry>
656ac8b7 167 <entry />
168 </row>
169
170 <row>
656ac8b7 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>
f24442bd 177 <entry align="center"> 9.1 </entry>
656ac8b7 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>
656ac8b7 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>
f02e0f08 235 <entry align="center"> 9.1 </entry>
656ac8b7 236 <entry />
237 </row>
238
239 <row>
656ac8b7 240 <entry> <code>&lt;span&gt;</code> </entry>
241 <entry>
242 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf">
243 P0122R7
244 </link>
245 </entry>
539fe734 246 <entry align="center"> 10.1 </entry>
247 <entry> <code>__cpp_lib_span &gt;= 201803L</code> </entry>
656ac8b7 248 </row>
249
250 <row>
251 <?dbhtml bgcolor="#C8B0B0" ?>
252 <entry> Extending chrono to Calendars and Time Zones </entry>
253 <entry>
254 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
255 P0355R7
256 </link>
257 </entry>
258 <entry align="center"> </entry>
259 <entry />
260 </row>
261
262 <row>
263 <?dbhtml bgcolor="#C8B0B0" ?>
264 <entry> Thou Shalt Not Specialize std Function Templates! </entry>
265 <entry>
266 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf">
267 P0551R3
268 </link>
269 </entry>
270 <entry align="center"> </entry>
271 <entry />
272 </row>
273
274 <row>
275 <?dbhtml bgcolor="#C8B0B0" ?>
276 <entry> Manipulators for C++ Synchronized Buffered Ostream </entry>
277 <entry>
278 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
279 P0753R2
280 </link>
281 </entry>
282 <entry align="center"> </entry>
283 <entry />
284 </row>
285
286 <row>
287 <entry> <code>&lt;version&gt;</code> </entry>
288 <entry>
289 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf">
290 P0754R2
291 </link>
292 </entry>
293 <entry align="center"> 9.1 </entry>
294 <entry />
295 </row>
296
297 <row>
298 <?dbhtml bgcolor="#C8B0B0" ?>
299 <entry> Comparing Unordered Containers </entry>
300 <entry>
301 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
302 P0809R0
303 </link>
304 </entry>
305 <entry align="center"> </entry>
306 <entry />
307 </row>
308
309 <row>
310 <?dbhtml bgcolor="#C8B0B0" ?>
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"> </entry>
318 <entry />
319 </row>
320
321 <row>
322 <?dbhtml bgcolor="#C8B0B0" ?>
323 <entry> Symmetry for spaceship </entry>
324 <entry>
325 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html">
326 P0905R1
327 </link>
328 </entry>
329 <entry align="center"> </entry>
330 <entry />
331 </row>
332
333 <row>
334 <?dbhtml bgcolor="#C8B0B0" ?>
335 <entry> <code>string::reserve</code> Should Not Shrink </entry>
336 <entry>
337 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
338 P0966R1
339 </link>
340 </entry>
341 <entry align="center"> </entry>
342 <entry />
343 </row>
344
345 <row>
656ac8b7 346 <entry> Atomic Ref </entry>
347 <entry>
348 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html">
349 P0019R8
350 </link>
351 </entry>
6e6ad5a7 352 <entry align="center"> 10.1 </entry>
353 <entry> <code>__cpp_lib_atomic_ref &gt;= 201806L</code> </entry>
656ac8b7 354 </row>
355
356 <row>
357 <entry> Checking for Existence of an Element in Associative Containers </entry>
358 <entry>
359 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html">
360 P0458R2
361 </link>
362 </entry>
363 <entry align="center"> 9.1 </entry>
364 <entry />
365 </row>
366
367 <row>
368 <entry> LWG 2511: guaranteed copy elision for piecewise construction </entry>
369 <entry>
370 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html">
371 P0475R1
372 </link>
373 </entry>
374 <entry align="center"> 7.1 </entry>
375 <entry />
376 </row>
377
378 <row>
379 <?dbhtml bgcolor="#C8B0B0" ?>
380 <entry> Bit-casting object representations </entry>
381 <entry>
382 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
383 P0476R2
384 </link>
385 </entry>
386 <entry align="center"> </entry>
387 <entry />
388 </row>
389
390 <row>
391 <?dbhtml bgcolor="#C8B0B0" ?>
392 <entry> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </entry>
393 <entry>
394 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html">
395 P0528R3
396 </link>
397 </entry>
398 <entry align="center"> </entry>
399 <entry />
400 </row>
401
402 <row>
403 <?dbhtml bgcolor="#C8B0B0" ?>
404 <entry> Support for contract based programming in C++ </entry>
405 <entry>
406 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0542r5.html">
407 P0542R5
408 </link>
409 </entry>
410 <entry align="center"> </entry>
411 <entry />
412 </row>
413
414 <row>
415 <entry> Integral power-of-2 operations </entry>
416 <entry>
417 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html">
418 P0556R3
419 </link>
420 </entry>
421 <entry align="center"> 9.1 </entry>
422 <entry />
423 </row>
424
425 <row>
426 <?dbhtml bgcolor="#C8B0B0" ?>
427 <entry> Reviewing Deprecated Facilities of C++17 for C++20 </entry>
428 <entry>
429 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html">
430 P0619R4
431 </link>
432 </entry>
433 <entry align="center"> </entry>
434 <entry />
435 </row>
436
437 <row>
438 <entry> Improving the Return Value of Erase-Like Algorithms </entry>
439 <entry>
440 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf">
441 P0646R1
442 </link>
443 </entry>
444 <entry align="center"> 9.1 </entry>
445 <entry> <code>__cpp_lib_list_remove_return_type &gt;= 201806L</code> </entry>
446 </row>
447
448 <row>
449 <entry> Efficient sized delete for variable sized classes </entry>
450 <entry>
451 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html">
452 P0722R3
453 </link>
454 </entry>
455 <entry align="center"> 9.1 </entry>
456 <entry> <code>__cpp_lib_destroying_delete &gt;= 201806L</code> </entry>
457 </row>
458
459 <row>
460 <entry> Implicit conversion traits and utility functions </entry>
461 <entry>
462 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html">
463 P0758R1
464 </link>
465 </entry>
466 <entry align="center"> 9.1 </entry>
467 <entry />
468 </row>
469
470 <row>
471 <entry> <code>fpos</code> Requirements </entry>
472 <entry>
473 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html">
474 P0759R1
475 </link>
476 </entry>
477 <entry align="center"> Note 1 </entry>
478 <entry />
479 </row>
480
481 <row>
482 <?dbhtml bgcolor="#C8B0B0" ?>
483 <entry> Add <code>shift</code> to <code>&lt;algorithm&gt;</code> </entry>
484 <entry>
485 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf">
486 P0769R2
487 </link>
488 </entry>
489 <entry align="center"> </entry>
490 <entry />
491 </row>
492
493 <row>
494 <?dbhtml bgcolor="#C8B0B0" ?>
495 <entry> Standard Library Specification in a Concepts and Contracts World </entry>
496 <entry>
497 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
498 P0788R3
499 </link>
500 </entry>
501 <entry align="center"> </entry>
502 <entry />
503 </row>
504
505 <row>
506 <?dbhtml bgcolor="#C8B0B0" ?>
507 <entry> Constexpr for <code>swap</code> and swap related functions </entry>
508 <entry>
509 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html">
510 P0879R0
511 </link>
512 </entry>
513 <entry align="center"> </entry>
514 <entry />
515 </row>
516
517 <row>
656ac8b7 518 <entry> The <code>identity</code> metafunction </entry>
519 <entry>
520 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf">
521 P0887R1
522 </link>
523 </entry>
1bbfe9f8 524 <entry align="center"> 9.1 </entry>
656ac8b7 525 <entry />
526 </row>
527
528 <row>
529 <entry> <code>explicit(bool)</code> </entry>
530 <entry>
531 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html">
532 P0892R2
533 </link>
534 </entry>
535 <entry align="center"> Note 1 </entry>
536 <entry />
537 </row>
538
539 <row>
540 <?dbhtml bgcolor="#C8B0B0" ?>
541 <entry> Standard Library Concepts </entry>
542 <entry>
543 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf">
544 P0898R3
545 </link>
546 </entry>
547 <entry align="center"> </entry>
548 <entry />
549 </row>
550
551 <row>
552 <entry> Eradicating unnecessarily explicit default constructors from the standard library </entry>
553 <entry>
554 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html">
555 P0935R0
556 </link>
557 </entry>
558 <entry align="center"> 9.1 </entry>
559 <entry />
560 </row>
561
562 <row>
563 <entry> Integrating feature-test macros into the C++ WD </entry>
564 <entry>
565 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html">
566 P0941R2
567 </link>
568 </entry>
569 <entry align="center"> 5.1 </entry>
570 <entry />
571 </row>
572
573 <row>
574 <?dbhtml bgcolor="#C8B0B0" ?>
575 <entry> <code>constexpr</code> comparison operators for <code>std::array</code> </entry>
576 <entry>
577 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf">
578 P1023R0
579 </link>
580 </entry>
581 <entry align="center"> </entry>
582 <entry />
583 </row>
584
585 <row>
586 <?dbhtml bgcolor="#C8B0B0" ?>
587 <entry> Update The Reference To The Unicode Standard </entry>
588 <entry>
589 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
590 P1025R1
591 </link>
592 </entry>
593 <entry align="center"> </entry>
594 <entry />
595 </row>
596
597 <row>
598 <?dbhtml bgcolor="#C8B0B0" ?>
599 <entry> Consistency improvements for <code>&lt;=&gt;</code> and other comparison operators </entry>
600 <entry>
601 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1120r0.html">
602 P1120R0
603 </link>
604 </entry>
605 <entry align="center"> </entry>
606 <entry />
607 </row>
608
609 <row>
610 <entry> <code>unwrap_ref_decay</code> and <code>unwrap_reference</code> </entry>
611 <entry>
612 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf">
613 P0318R1
614 </link>
615 </entry>
616 <entry align="center"> 9.1 </entry>
617 <entry />
618 </row>
619
620 <row>
656ac8b7 621 <entry> Simplified partial function application </entry>
622 <entry>
623 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html">
624 P0356R5
625 </link>
626 </entry>
f24442bd 627 <entry align="center"> 9.1 </entry>
628 <entry> <code>__cpp_lib_bind_front &gt;= 201811L</code> </entry>
656ac8b7 629 </row>
630
631 <row>
632 <entry> <code>reference_wrapper</code> for incomplete types </entry>
633 <entry>
634 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html">
635 P0357R3
636 </link>
637 </entry>
638 <entry align="center"> 9.1 </entry>
639 <entry />
640 </row>
641
642 <row>
656ac8b7 643 <entry> <code>char8_t</code>: A type for UTF-8 characters and strings </entry>
644 <entry>
645 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html">
646 P0482R6
647 </link>
648 </entry>
f24442bd 649 <entry align="center"> 9.1 </entry>
650 <entry> <code>__cpp_lib_char8_t &gt;= 201811L</code> </entry>
656ac8b7 651 </row>
652
653 <row>
654 <?dbhtml bgcolor="#C8B0B0" ?>
655 <entry> Fixing <code>operator&gt;&gt;(basic_istream&amp;, CharT*)</code> (LWG 2499) </entry>
656 <entry>
657 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html">
658 P0487R1
659 </link>
660 </entry>
661 <entry align="center"> </entry>
662 <entry />
663 </row>
664
665 <row>
656ac8b7 666 <entry> Utility functions to implement uses-allocator construction </entry>
667 <entry>
668 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf">
669 P0591R4
670 </link>
671 </entry>
f24442bd 672 <entry align="center"> 9.1 </entry>
f0a82465 673 <entry>
674 <code>std::scoped_allocator_adaptor</code> changes missing in 9.1.0
675 </entry>
656ac8b7 676 </row>
677
678 <row>
679 <entry> P0595R2 <code>std::is_constant_evaluated()</code> </entry>
680 <entry>
681 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html">
682 P0595R2
683 </link>
684 </entry>
685 <entry align="center"> 9.1 </entry>
686 <entry />
687 </row>
688
689 <row>
690 <entry> <code>variant</code> and <code>optional</code> should propagate copy/move triviality </entry>
691 <entry>
692 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html">
693 P0602R4
694 </link>
695 </entry>
696 <entry align="center"> 8.3 </entry>
697 <entry />
698 </row>
699
700 <row>
656ac8b7 701 <entry> A sane <code>variant</code> converting constructor </entry>
702 <entry>
703 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html">
704 P0608R3
705 </link>
706 </entry>
f02e0f08 707 <entry align="center"> 10.1 </entry>
656ac8b7 708 <entry />
709 </row>
710
711 <row>
656ac8b7 712 <entry> <code>visit&lt;R&gt;</code>: Explicit Return Type for <code>visit</code> </entry>
713 <entry>
714 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf">
715 P0655R1
716 </link>
717 </entry>
bfbd20f7 718 <entry align="center"> 9.1 </entry>
656ac8b7 719 <entry />
720 </row>
721
722 <row>
723 <entry> <code>std::function</code> move constructor should be <code>noexcept</code> </entry>
724 <entry>
725 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf">
726 P0771R1
727 </link>
728 </entry>
729 <entry align="center"> 7.2 </entry>
730 <entry />
731 </row>
732
733 <row>
734 <?dbhtml bgcolor="#C8B0B0" ?>
735 <entry> The One Ranges Proposal </entry>
736 <entry>
737 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf">
738 P0896R4
739 </link>
740 </entry>
741 <entry align="center"> </entry>
742 <entry />
743 </row>
744
745 <row>
746 <entry> P0899R1 - LWG 3016 is not a defect </entry>
747 <entry>
748 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html">
749 P0899R1
750 </link>
751 </entry>
752 <entry align="center"> 7.1 </entry>
753 <entry />
754 </row>
755
756 <row>
757 <?dbhtml bgcolor="#C8B0B0" ?>
758 <entry> Heterogeneous lookup for unordered containers </entry>
759 <entry>
760 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html">
761 P0919R3
762 </link>
763 </entry>
764 <entry align="center"> </entry>
765 <entry />
766 </row>
767
768 <row>
769 <entry> <code>&lt;chrono&gt;</code> <code>zero()</code>, <code>min()</code>, and <code>max()</code> should be <code>noexcept</code> </entry>
770 <entry>
771 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf">
772 P0972R0
773 </link>
774 </entry>
775 <entry align="center"> 9.1 </entry>
776 <entry />
777 </row>
778
779 <row>
656ac8b7 780 <entry> Constexpr in <code>std::pointer_traits</code> </entry>
781 <entry>
782 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf">
783 P1006R1
784 </link>
785 </entry>
f24442bd 786 <entry align="center"> 9.1 </entry>
656ac8b7 787 <entry />
788 </row>
789
790 <row>
656ac8b7 791 <entry> <code>std::assume_aligned</code> </entry>
792 <entry>
793 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf">
794 P1007R3
795 </link>
796 </entry>
f24442bd 797 <entry align="center"> 9.1 </entry>
656ac8b7 798 <entry />
799 </row>
800
801 <row>
802 <?dbhtml bgcolor="#C8B0B0" ?>
803 <entry> Smart pointer creation with default initialization </entry>
804 <entry>
805 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html">
806 P1020R1
807 </link>
808 </entry>
809 <entry align="center"> </entry>
810 <entry />
811 </row>
812
813 <row>
814 <?dbhtml bgcolor="#C8B0B0" ?>
815 <entry> Misc constexpr bits </entry>
816 <entry>
817 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html">
818 P1032R1
819 </link>
820 </entry>
821 <entry align="center"> </entry>
822 <entry />
823 </row>
824
825 <row>
826 <?dbhtml bgcolor="#C8B0B0" ?>
827 <entry> Should Span be Regular? </entry>
828 <entry>
829 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md">
830 P1085R2
831 </link>
832 </entry>
833 <entry align="center"> </entry>
834 <entry />
835 </row>
836
837 <row>
656ac8b7 838 <entry> Editorial Guidance for merging P0019r8 and P0528r3 </entry>
839 <entry>
840 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html">
841 P1123R0
842 </link>
843 </entry>
8793c0de 844 <entry align="center"> Note 1 </entry>
656ac8b7 845 <entry />
846 </row>
847
848 <row>
849 <?dbhtml bgcolor="#C8B0B0" ?>
850 <entry> Cleaning up Clause 20 </entry>
851 <entry>
852 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
853 P1148R0
854 </link>
855 </entry>
856 <entry align="center"> </entry>
857 <entry />
858 </row>
859
860 <row>
656ac8b7 861 <entry> Make stateful allocator propagation more consistent for <code>operator+(basic_string)</code> </entry>
862 <entry>
863 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html">
864 P1165R1
865 </link>
866 </entry>
f02e0f08 867 <entry align="center"> 10.1 </entry>
656ac8b7 868 <entry />
869 </row>
870
871 <row>
872 <entry> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </entry>
873 <entry>
874 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html">
875 P1209R0
876 </link>
877 </entry>
878 <entry align="center"> 9.1 </entry>
879 <entry> <code>__cpp_lib_erase_if &gt;= 201811L</code> </entry>
880 </row>
881
882 <row>
883 <?dbhtml bgcolor="#C8B0B0" ?>
884 <entry> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </entry>
885 <entry>
886 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html">
887 P1210R0
888 </link>
889 </entry>
890 <entry align="center"> </entry>
891 <entry />
892 </row>
893
894 <row>
895 <?dbhtml bgcolor="#C8B0B0" ?>
896 <entry> Alternative Wording for P0907R4 Signed Integers are Two's Complement </entry>
897 <entry>
898 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html">
899 P1236R1
900 </link>
901 </entry>
902 <entry align="center"> </entry>
903 <entry />
904 </row>
905
906 <row>
907 <?dbhtml bgcolor="#C8B0B0" ?>
908 <entry> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) </entry>
909 <entry>
910 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html">
911 P1248R1
912 </link>
913 </entry>
914 <entry align="center"> </entry>
915 <entry />
916 </row>
917
918 <row>
fbf62452 919 <?dbhtml bgcolor="#B0B0B0" ?>
656ac8b7 920 <entry> Improving Completeness Requirements for Type Traits </entry>
921 <entry>
922 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
923 P1285R0
924 </link>
925 </entry>
fbf62452 926 <entry align="center"> Partial </entry>
656ac8b7 927 <entry />
928 </row>
929
8967657e 930 <row>
931 <entry> Well-behaved interpolation for numbers and pointers </entry>
932 <entry>
933 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html">
934 P0811R3
935 </link>
936 </entry>
937 <entry align="center"> 9.1 </entry>
2a9eab7c 938 <entry> <code>__cpp_lib_interpolate &gt;= 201902L</code> </entry>
8967657e 939 </row>
940
656ac8b7 941 <row>
656ac8b7 942 <entry> Missing feature test macros </entry>
943 <entry>
944 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html">
945 P1353R0
946 </link>
947 </entry>
2a9eab7c 948 <entry align="center"> 9.1 </entry>
656ac8b7 949 <entry />
950 </row>
5c70715f 951
fbf62452 952 <row>
953 <entry>
954 <classname>polymorphic_allocator&lt;&gt;</classname>
955 as a vocabulary type
956 </entry>
957 <entry>
958 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf">
959 P0339R6
960 </link>
961 </entry>
962 <entry align="center"> 9.1 </entry>
963 <entry />
964 </row>
965
966 <row>
fbf62452 967 <entry> Making std::underlying_type SFINAE-friendly </entry>
968 <entry>
969 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html">
970 P0340R3
971 </link>
972 </entry>
973 <entry align="center"> 9.1 </entry>
974 <entry />
975 </row>
976
977 <row>
978 <?dbhtml bgcolor="#C8B0B0" ?>
979 <entry>
980 I Stream, You Stream, We All Stream for
981 <classname>istream_iterator</classname>
982 </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/p0738r2.html">
985 P0738R2
986 </link>
987 </entry>
988 <entry align="center"> </entry>
989 <entry />
990 </row>
991
992 <row>
993 <entry>
994 Mandating the Standard Library:
995 Clause 16 - Language support library
996 </entry>
997 <entry>
998 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
999 P1458R1
1000 </link>
1001 </entry>
1002 <entry align="center"> </entry>
1003 <entry> Note 1 </entry>
1004 </row>
1005
1006 <row>
1007 <entry>
1008 Mandating the Standard Library:
1009 Clause 18 - Diagnostics library
1010 </entry>
1011 <entry>
1012 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf">
1013 P1459R1
1014 </link>
1015 </entry>
1016 <entry align="center"> </entry>
1017 <entry> Note 1 </entry>
1018 </row>
1019
1020 <row>
1021 <entry>
1022 Mandating the Standard Library:
1023 Clause 20 - Strings library
1024 </entry>
1025 <entry>
1026 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1462r1.html">
1027 P1462R1
1028 </link>
1029 </entry>
1030 <entry align="center"> </entry>
1031 <entry> Note 1 </entry>
1032 </row>
1033
5c70715f 1034 <row>
1035 <entry>
1036 Mandating the Standard Library:
1037 Clause 21 - Containers library
1038 </entry>
1039 <entry>
1040 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf">
1041 P1463R1
1042 </link>
1043 </entry>
1044 <entry align="center"> 10 </entry>
1045 <entry/>
1046 </row>
1047
fbf62452 1048 <row>
1049 <?dbhtml bgcolor="#C8B0B0" ?>
1050 <entry>
1051 Mandating the Standard Library:
1052 Clause 22 - Iterators library
1053 </entry>
1054 <entry>
1055 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf">
1056 P1464R1
1057 </link>
1058 </entry>
1059 <entry align="center"> </entry>
1060 <entry />
1061 </row>
1062
1063 <row>
1064 <entry> Make <code>create_directory()</code> Intuitive </entry>
1065 <entry>
1066 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf">
1067 P1164R1
1068 </link>
1069 </entry>
1070 <entry align="center"> 8.3 </entry>
2b018df4 1071 <entry> Treated as a DR for C++17 </entry>
fbf62452 1072 </row>
1073
1074 <row>
1075 <?dbhtml bgcolor="#C8B0B0" ?>
1076 <entry>
1077 Target Vectorization Policies from Parallelism V2 TS to C++20
1078 </entry>
1079 <entry>
1080 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1001r2.html">
1081 P1001R2
1082 </link>
1083 </entry>
1084 <entry align="center"> </entry>
1085 <entry />
1086 </row>
1087
1088 <row>
fbf62452 1089 <entry> Signed ssize() functions, unsigned size() functions </entry>
1090 <entry>
1091 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html">
1092 P1227R2
1093 </link>
1094 </entry>
f8552117 1095 <entry align="center"> 10.1 </entry>
fbf62452 1096 <entry />
1097 </row>
1098
1099 <row>
1100 <?dbhtml bgcolor="#C8B0B0" ?>
1101 <entry> Ranges Design Cleanup </entry>
1102 <entry>
1103 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf">
1104 P1252R2
1105 </link>
1106 </entry>
1107 <entry align="center"> </entry>
1108 <entry />
1109 </row>
1110
1111 <row>
fbf62452 1112 <entry>
1113 Usability Enhancements for <classname>std::span</classname>
1114 </entry>
1115 <entry>
1116 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf">
1117 P1024R3
1118 </link>
1119 </entry>
539fe734 1120 <entry align="center"> 10.1 </entry>
1121 <entry> <code>__cpp_lib_span &gt;= 201902L</code> </entry>
2b018df4 1122 </row>
1123
fbf62452 1124 <row>
1125 <entry> Traits for [Un]bounded Arrays </entry>
1126 <entry>
1127 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf">
1128 P1357R1
1129 </link>
1130 </entry>
1131 <entry align="center"> 9.1 </entry>
1132 <entry> <code>__cpp_lib_bounded_array_traits &gt;= 201902L</code> </entry>
1133 </row>
1134
656ac8b7 1135 </tbody>
1136</tgroup>
1137</table>
1138
1139<para>
1140Note 1: The changes in the proposal either do not affect the code in libstdc++,
1141or the changes are not required for conformance.
1142</para>
1143
1144
1145<section xml:id="iso.2020.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
1146
1147 <para>For behaviour which is also specified by previous standards,
1148 see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
1149 Specific Behavior</link>, <link linkend="iso.2011.specific">C++
1150 2011 Implementation Specific Behavior</link> and <link
1151 linkend="iso.2017.specific">C++ 2017 Implementation Specific
1152 Behavior</link>.
1153 This section only documents behaviour which is new in the 202a draft.
1154 </para>
1155
1156
1157</section>
1158
1159</section>