1<section xmlns="http://docbook.org/ns/docbook" version="5.0"
2	 xml:id="status.iso.2017" xreflabel="Status C++ 2017">
3<?dbhtml filename="status_iso_cxx2017.html"?>
4
5<info><title>C++ 2017</title>
6  <keywordset>
7    <keyword>ISO C++</keyword>
8    <keyword>2017</keyword>
9  </keywordset>
10</info>
11
12<para>
13In this implementation the <literal>-std=gnu++17</literal> or
14<literal>-std=c++17</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.
20GCC 9.1 was the first release with non-experimental C++17 support,
21so the API and ABI of features added in C++17 is only stable
22since that release.
23</para>
24
25<para>
26This section describes the C++17 and library TS support in the GCC 10 release series.
27</para>
28
29<para>
30The following table lists new library features that are included in
31the C++17 standard. The "Proposal" column provides a link to the
32ISO C++ committee proposal that describes the feature, while the "Status"
33column indicates the first version of GCC that contains an implementation of
34this feature (if it has been implemented).
35The "SD-6 Feature Test" 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:
37Feature-testing recommendations for C++</link>.
38</para>
39
40<table frame="all" xml:id="table.cxx17_features">
41<title>C++ 2017 Library Features</title>
42
43<tgroup cols="4" align="left" colsep="0" rowsep="1">
44<colspec colname="c1"/>
45<colspec colname="c2"/>
46<colspec colname="c3"/>
47<colspec colname="c4"/>
48  <thead>
49    <row>
50      <entry>Library Feature</entry>
51      <entry>Proposal</entry>
52      <entry>Status</entry>
53      <entry>SD-6 Feature Test</entry>
54    </row>
55  </thead>
56
57  <tbody>
58
59    <row>
60      <?dbhtml bgcolor="#C8B0B0" ?>
61      <entry>
62	<code>constexpr std::hardware_{constructive,destructive}_interference_size</code>
63      </entry>
64      <entry>
65	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html">
66	P0154R1
67	</link>
68      </entry>
69      <entry align="center"> No </entry>
70      <entry> <code>__cpp_lib_hardware_interference_size >= 201603</code> </entry>
71    </row>
72
73    <row>
74      <entry> Core Issue 1776: Replacement of class objects containing reference members</entry>
75      <entry>
76	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0137r1.html">
77	P0137R1
78	</link>
79      </entry>
80      <entry align="center"> 7.1 </entry>
81      <entry> <code>__cpp_lib_launder >= 201606</code> </entry>
82    </row>
83
84    <row>
85      <entry>Wording for <code>std::uncaught_exceptions</code></entry>
86      <entry>
87	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf">
88	  N4259
89	</link>
90      </entry>
91      <entry align="center">6.1</entry>
92      <entry><code>__cpp_lib_uncaught_exceptions >= 201411</code></entry>
93    </row>
94
95    <row>
96      <entry> C++17 should refer to C11 instead of C99 </entry>
97      <entry>
98	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html">
99	P0063R3
100	</link>
101      </entry>
102      <entry align="center"> 9.1 </entry>
103      <entry/>
104    </row>
105
106    <row>
107      <entry> Variant: a type-safe union for C++17 </entry>
108      <entry>
109	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html">
110	P0088R3
111	</link>
112      </entry>
113      <entry align="center"> 7.1 </entry>
114      <entry> <code>__has_include(&lt;variant&gt;)</code>,
115              <code>__cpp_lib_variant >= 201603</code>
116              (since 7.3, see Note 1)
117      </entry>
118    </row>
119
120    <row>
121      <entry> Library Fundamentals V1 TS Components: <code>optional</code> </entry>
122      <entry>
123	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
124	P0220R1
125	</link>
126      </entry>
127      <entry align="center"> 7.1 </entry>
128      <entry> <code>__has_include(&lt;optional&gt;)</code>,
129              <code>__cpp_lib_optional >= 201603</code>
130              (since 7.3, see Note 1)
131      </entry>
132    </row>
133
134    <row>
135      <entry> Library Fundamentals V1 TS Components: <code>any</code> </entry>
136      <entry>
137	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
138	P0220R1
139	</link>
140      </entry>
141      <entry align="center"> 7.1 </entry>
142      <entry> <code>__has_include(&lt;any&gt;)</code>,
143              <code>__cpp_lib_any >= 201603</code>
144              (since 7.3, see Note 1)
145      </entry>
146    </row>
147
148    <row>
149      <entry> Library Fundamentals V1 TS Components: <code>string_view</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/2016/p0220r1.html">
152	P0220R1
153	</link>
154      </entry>
155      <entry align="center"> 7.1 </entry>
156      <entry> <code>__has_include(&lt;string_view&gt;)</code>,
157              <code>__cpp_lib_string_view >= 201603</code>
158              (since 7.3, see Note 1)
159      </entry>
160    </row>
161
162    <row>
163      <entry> Library Fundamentals V1 TS Components: <code>memory_resource</code> </entry>
164      <entry>
165	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
166	P0220R1
167	</link>
168      </entry>
169      <entry align="center"> 9.1 </entry>
170      <entry> <code>__has_include(&lt;memory_resource&gt;)</code>,
171              <code>__cpp_lib_memory_resource >= 201603</code>
172      </entry>
173    </row>
174
175    <row>
176      <entry> Library Fundamentals V1 TS Components: <code>apply</code> </entry>
177      <entry>
178	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
179	P0220R1
180	</link>
181      </entry>
182      <entry align="center"> 7.1 </entry>
183      <entry> <code>__cpp_lib_apply >= 201603</code> </entry>
184    </row>
185
186    <row>
187      <entry> Library Fundamentals V1 TS Components: <code>shared_ptr&lt;T[]&gt;</code> </entry>
188      <entry>
189	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
190	P0220R1
191	</link>
192      </entry>
193      <entry align="center"> 7.1 </entry>
194      <entry> <code>__cpp_lib_shared_ptr_arrays >= 201603</code> </entry>
195    </row>
196
197    <row>
198      <entry> Library Fundamentals V1 TS Components: Searchers </entry>
199      <entry>
200	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
201	P0220R1
202	</link>
203      </entry>
204      <entry align="center"> 7.1 </entry>
205      <entry> <code>__cpp_lib_boyer_moore_searcher >= 201603</code> </entry>
206    </row>
207
208    <row>
209      <entry> Library Fundamentals V1 TS Components: Sampling </entry>
210      <entry>
211	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
212	P0220R1
213	</link>
214      </entry>
215      <entry align="center"> 7.1 </entry>
216      <entry> <code>__cpp_lib_sample >= 201603</code> </entry>
217    </row>
218
219    <row>
220      <entry> Constant View: A proposal for a <code>std::as_const</code> helper function template	</entry>
221      <entry>
222	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="">
223	P0007R1
224	</link>
225      </entry>
226      <entry align="center"> 7.1 </entry>
227      <entry><code> __cpp_lib_as_const >= 201510 </code></entry>
228    </row>
229
230    <row>
231      <entry> Improving pair and tuple </entry>
232      <entry>
233	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387">
234	N4387
235	</link>
236      </entry>
237      <entry align="center"> 6.1 </entry>
238      <entry> N/A </entry>
239    </row>
240
241    <row>
242      <entry> <code>make_from_tuple</code>: apply for construction </entry>
243      <entry>
244	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0209r2.pdf">
245	P0209R2
246	</link>
247      </entry>
248      <entry align="center"> 7.1 </entry>
249      <entry><code> __cpp_lib_make_from_tuple >= 201606 </code></entry>
250    </row>
251
252    <row>
253      <?dbhtml bgcolor="#C8B0B0" ?>
254      <entry>
255        Removing <code>auto_ptr</code>, <code>random_shuffle()</code>,
256        And Old <code>&lt;functional&gt;</code> Stuff
257      </entry>
258      <entry>
259	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm">
260	  N4190
261	</link>
262      </entry>
263      <entry align="center">No (kept for backwards compatibility)</entry>
264      <entry/>
265    </row>
266
267    <row>
268      <?dbhtml bgcolor="#C8B0B0" ?>
269      <entry> Deprecating Vestigial Library Parts in C++17 </entry>
270      <entry>
271	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html">
272	P0174R2
273	</link>
274      </entry>
275      <entry align="center"> No  (kept for backwards compatibility)</entry>
276      <entry/>
277    </row>
278
279    <row>
280      <entry> Making <code>std::owner_less</code> more flexible </entry>
281      <entry>
282	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0074r0.html">
283	P0074R0
284	</link>
285      </entry>
286      <entry align="center"> 7.1 </entry>
287      <entry><code> __cpp_lib_transparent_operators >= 201510 </code></entry>
288    </row>
289
290    <row>
291      <entry> <code>std::addressof</code> should be constexpr </entry>
292      <entry>
293	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0304r0.html#2296">
294	LWG2296
295	</link>
296      </entry>
297      <entry align="center"> 7.1 </entry>
298      <entry><code> __cpp_lib_addressof_constexpr >= 201603 </code></entry>
299    </row>
300
301    <row>
302      <entry> Safe conversions in <code>unique_ptr&lt;T[]&gt;</code> </entry>
303      <entry>
304	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089.pdf">
305	N4089
306	</link>
307      </entry>
308      <entry align="center"> 6 </entry>
309      <entry/>
310    </row>
311
312    <row>
313      <entry> LWG 2228: Missing SFINAE rule in unique_ptr templated assignment </entry>
314      <entry>
315	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366.html">
316	  N4366
317	</link>
318      </entry>
319      <entry align="center"> 6 </entry>
320      <entry/>
321    </row>
322
323    <row>
324      <entry> Re-enabling <code>shared_from_this</code></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/2016/p0033r1.html">
327	P0033R1
328	</link>
329      </entry>
330      <entry align="center"> 7.1 </entry>
331      <entry><code>__cpp_lib_enable_shared_from_this >= 201603</code></entry>
332    </row>
333
334    <row>
335      <entry> A proposal to add <code>invoke</code> function template </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/2014/n4169.html">
338	N4169
339	</link>
340      </entry>
341      <entry align="center"> 6.1 </entry>
342      <entry><code> __cpp_lib_invoke >= 201411 </code></entry>
343    </row>
344
345    <row>
346      <entry>TriviallyCopyable <code>reference_wrapper</code> </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/2014/n4277.html">
349	  N4277
350	</link>
351      </entry>
352      <entry align="center"> 5.1 </entry>
353      <entry/>
354    </row>
355
356    <row>
357      <entry> Adopt <code>not_fn</code> from Library Fundamentals 2 for C++17 </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/2016/p0005r4.html">
360	P0005R4
361	</link>
362      </entry>
363      <entry align="center"> 7.1 </entry>
364      <entry><code>__cpp_lib_not_fn >= 201603</code></entry>
365    </row>
366
367    <row>
368      <entry> Fixes for <code>not_fn</code> </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/2016/p0358r1.html">
371	P0358R1
372	</link>
373      </entry>
374      <entry align="center"> 7.1 </entry>
375      <entry/>
376    </row>
377
378    <row>
379      <entry> Fixing a design mistake in the searchers interface in Library Fundamentals </entry>
380      <entry>
381	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf">
382	P0253R1
383	</link>
384      </entry>
385      <entry align="center"> 7.1 </entry>
386      <entry/>
387    </row>
388
389    <row>
390      <entry> Extending memory management tools </entry>
391      <entry>
392	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html">
393	P0040R3
394	</link>
395      </entry>
396      <entry align="center"> 7.1 </entry>
397      <entry><code>__cpp_lib_raw_memory_algorithms &gt;= 201606L</code></entry>
398    </row>
399
400    <row>
401      <entry> <code>shared_ptr::weak_type</code></entry>
402      <entry>
403	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html">
404	P0163R0
405	</link>
406      </entry>
407      <entry align="center"> 7.1 </entry>
408      <entry><code> __cpp_lib_shared_ptr_weak_type >= 201606</code></entry>
409    </row>
410
411    <row>
412      <entry>Transformation Trait Alias <code>void_t</code></entry>
413      <entry>
414	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf">
415	  N3911
416	</link>
417      </entry>
418      <entry align="center">6.1</entry>
419      <entry><code> __cpp_lib_void_t >= 201411</code></entry>
420    </row>
421
422    <row>
423      <entry> Wording for <code>bool_constant</code>, revision 1 </entry>
424      <entry>
425	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389.html">
426	  N4389
427	</link>
428      </entry>
429      <entry align="center">6.1</entry>
430      <entry><code> __cpp_lib_bool_constant >= 201505</code></entry>
431    </row>
432
433    <row>
434      <entry> Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17</entry>
435      <entry>
436	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html">
437	P0006R0
438	</link>
439      </entry>
440      <entry align="center"> 7.1 </entry>
441      <entry><code> __cpp_lib_type_trait_variable_templates >= 201510 </code></entry>
442    </row>
443
444    <row>
445      <entry> Logical Operator Type Traits</entry>
446      <entry>
447	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0013r1.html">
448	P0013R1
449	</link>
450      </entry>
451      <entry align="center"> 6.1 </entry>
452      <entry><code> __cpp_lib_logical_traits >= 201510 </code></entry>
453    </row>
454
455    <row>
456      <entry> Adding [nothrow-]swappable traits </entry>
457      <entry>
458	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html">
459	P0185R1
460	</link>
461      </entry>
462      <entry align="center"> 7 (<code>__is_swappable</code> available since 6.1)</entry>
463      <entry><code> __cpp_lib_is_swappable >= 201603 </code></entry>
464    </row>
465
466    <row>
467      <entry> <code>is_callable</code>, the missing INVOKE related trait</entry>
468      <entry>
469	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0077r2.html">
470	P0077R2
471	</link>
472      </entry>
473      <entry align="center"> 7.1 </entry>
474      <entry><code> __cpp_lib_is_invocable >= 201703 </code></entry>
475    </row>
476
477    <row>
478      <entry> has_unique_object_representations </entry>
479      <entry>
480	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html">
481	P0258R2
482	</link>
483      </entry>
484      <entry align="center"> 7.1 </entry>
485      <entry><code> __cpp_lib_has_unique_object_representations >= 201606 </code></entry>
486    </row>
487
488    <row>
489      <entry> Polishing <code>&lt;chrono&gt;</code> </entry>
490      <entry>
491	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html">
492	P0092R1
493	</link>
494      </entry>
495      <entry align="center"> 7.1 </entry>
496      <entry><code> __cpp_lib_chrono >= 201510 </code></entry>
497    </row>
498
499    <row>
500      <entry> Adding more constexpr to <code>&lt;chrono&gt;</code> </entry>
501      <entry>
502	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0505r0.html">
503	P0505R0
504	</link>
505      </entry>
506      <entry align="center"> 7.1 </entry>
507      <entry><code> __cpp_lib_chrono >= 201611 </code>
508             (since 7.3, see Note 2)
509      </entry>
510    </row>
511
512    <row>
513      <entry> Constexpr for <code>std::char_traits</code> </entry>
514      <entry>
515	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0426r1.html">
516	P0426R1
517	</link>
518      </entry>
519      <entry align="center"> 8.1 </entry>
520      <entry><code> __cpp_lib_constexpr_char_traits >= 201611 </code></entry>
521    </row>
522
523    <row>
524      <entry> Integrating <code>std::string_view</code> and <code>std::string</code> </entry>
525      <entry>
526	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf">
527	P0254R2
528	</link>
529      </entry>
530      <entry align="center"> 7.1 </entry>
531      <entry><code> </code></entry>
532    </row>
533
534    <row>
535      <entry> Give 'std::string' a non-const '.data()' member function </entry>
536      <entry>
537	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0272r1.html">
538	P0272R1
539	</link>
540      </entry>
541      <entry align="center"> 7.1 </entry>
542      <entry><code> </code></entry>
543    </row>
544
545    <row>
546      <entry>Cleaning-up noexcept in the Library</entry>
547      <entry>
548	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf">
549	  N4258
550	</link>
551      </entry>
552      <entry align="center">6.1</entry>
553      <entry><code> __cpp_lib_allocator_traits_is_always_equal >= 201411 </code></entry>
554    </row>
555
556    <row>
557      <entry>Contiguous Iterators </entry>
558      <entry>
559	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.html">
560	  N4284
561	</link>
562      </entry>
563      <entry align="center">N/A</entry>
564      <entry/>
565    </row>
566
567    <row>
568      <entry> Minimal incomplete type support for standard containers </entry>
569      <entry>
570	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html">
571	N4510
572	</link>
573      </entry>
574      <entry align="center"> 3.0 </entry>
575      <entry><code> __cpp_lib_incomplete_container_elements >= 201505 </code>
576	     (since 6.2, see Note 2)
577      </entry>
578    </row>
579
580    <row>
581      <entry> Emplace return type </entry>
582      <entry>
583	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf">
584	P0084R2
585	</link>
586      </entry>
587      <entry align="center"> 7.1 </entry>
588      <entry/>
589    </row>
590
591    <row>
592      <entry>Improved insertion interface for unique-key maps</entry>
593      <entry>
594	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html">
595	  N4279
596	</link>
597      </entry>
598      <entry align="center"> 6.1 </entry>
599      <entry><code> __cpp_lib_map_try_emplace >= 201411</code>,
600	     <code> __cpp_lib_unordered_map_try_emplace >= 201411</code>
601      </entry>
602    </row>
603
604    <row>
605      <entry> Splicing Maps and Sets </entry>
606      <entry>
607	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf">
608	P0083R3
609	</link>
610      </entry>
611      <entry align="center"> 7.1 </entry>
612      <entry><code> __cpp_lib_node_extract >= 201606 </code></entry>
613    </row>
614
615    <row>
616      <entry>Non-member <code>size()</code> and more</entry>
617      <entry>
618	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf">
619	  N4280
620	</link>
621      </entry>
622      <entry align="center"> 6.1 </entry>
623      <entry><code> __cpp_lib_nonmember_container_access >= 201411 </code></entry>
624    </row>
625
626    <row>
627      <entry> A Proposal to Add Constexpr Modifiers to <code>reverse_iterator</code>, <code>move_iterator</code>, <code>array</code> and Range Access </entry>
628      <entry>
629	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html">
630	P0031R0
631	</link>
632      </entry>
633      <entry align="center"> 7.1 </entry>
634      <entry><code> __cpp_lib_array_constexpr >= 201603 </code></entry>
635    </row>
636
637    <row>
638      <?dbhtml bgcolor="#B0B0B0" ?>
639      <entry> The Parallelism TS Should be Standardized	 </entry>
640      <entry>
641	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html">
642	P0024R2
643	</link>
644      </entry>
645      <entry align="center"> 9.1 </entry>
646      <entry><code> __has_include(&lt;execution&gt;) </code>,
647	     <code> __cpp_lib_execution >= 201603 </code>,
648	     <code> __cpp_lib_parallel_algorithm >= 201603 </code>
649             (requires linking with <code>-ltbb</code>, see Note 3)
650      </entry>
651    </row>
652
653    <row>
654      <entry> An algorithm to "clamp" a value between a pair of boundary values </entry>
655      <entry>
656	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html">
657	P0025R0
658	</link>
659      </entry>
660      <entry align="center"> 7.1 </entry>
661      <entry><code> __cpp_lib_clamp >= 201603 </code></entry>
662    </row>
663
664    <row>
665      <entry> Adopt Selected Library Fundamentals V2 Components for C++17 </entry>
666      <entry>
667	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0295r0.pdf">
668	P0295R0
669	</link>
670      </entry>
671      <entry align="center"> 7.1 </entry>
672      <entry><code> __cpp_lib_gcd_lcm >= 201606 </code></entry>
673    </row>
674
675    <row>
676      <entry> Proposal to Introduce a 3-Argument Overload to <code>std::hypot</code> </entry>
677      <entry>
678	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0030r1.pdf">
679	P0030R1
680	</link>
681      </entry>
682      <entry align="center"> 7.1 </entry>
683      <entry><code> __cpp_lib_hypot >= 201603 </code></entry>
684    </row>
685
686    <row>
687      <entry> Mathematical Special Functions for C++17 </entry>
688      <entry>
689	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf">
690	P0226R1
691	</link>
692      </entry>
693      <entry align="center"> 7.1 </entry>
694      <entry><code> __cpp_lib_math_special_functions >= 201603 </code>
695	     (see Note 4)
696      </entry>
697    </row>
698
699    <row>
700      <entry>Adopt the File System TS for C++17	 </entry>
701      <entry>
702	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html">
703	P0218R1
704	</link>
705      </entry>
706      <entry align="center"> 8.1 </entry>
707      <entry><code> __has_include(&lt;filesystem&gt;) </code>,
708	     <code> __cpp_lib_filesystem >= 201603 </code>
709	     (GCC 8.x requires linking with <code>-lstdc++fs</code>)
710      </entry>
711    </row>
712
713    <row>
714      <entry> Relative Paths for Filesystem</entry>
715      <entry>
716	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html">
717	P0219R1
718	</link>
719      </entry>
720      <entry align="center"> 8.1 </entry>
721      <entry><code> __cpp_lib_filesystem >= 201606 </code></entry>
722    </row>
723
724    <row>
725      <entry> Adapting string_view by filesystem paths </entry>
726      <entry>
727	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf">
728	P0392R0
729	</link>
730      </entry>
731      <entry align="center"> 8.1 </entry>
732      <entry><code> __cpp_lib_filesystem >= 201606 </code></entry>
733    </row>
734
735    <row>
736      <entry> Directory Entry Caching for Filesystem </entry>
737      <entry>
738       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0317r1.html">
739       P0317R1
740       </link>
741      </entry>
742      <entry align="center"> 8.1 </entry>
743      <entry><code> __cpp_lib_filesystem >= 201703 </code></entry>
744     </row>
745
746    <row>
747      <entry> constexpr <code>atomic&lt;T&gt;::is_always_lock_free</code>	 </entry>
748      <entry>
749	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html">
750	P0152R1
751	</link>
752      </entry>
753      <entry align="center"> 7.1 </entry>
754      <entry><code> __cpp_lib_atomic_is_always_lock_free >= 201603 </code></entry>
755    </row>
756
757    <row>
758      <entry>A proposal to add <code>shared_mutex</code> (untimed) (Revision 4)</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/2015/n4508.html">
761	  N4508
762	</link>
763      </entry>
764      <entry align="center"> 6.1 </entry>
765      <entry><code> __cpp_lib_shared_mutex >= 201505 </code></entry>
766    </row>
767
768    <row>
769      <entry> Variadic <code>lock_guard</code> (Rev. 5) </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/2017/p0156r2.html">
772	P0156R2
773	</link>
774      </entry>
775      <entry align="center"> 7.1 </entry>
776      <entry><code> __cpp_lib_scoped_lock >= 201703 </code></entry>
777    </row>
778
779    <row>
780      <entry> A byte type definition </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/2017/p0298r3.pdf">
783	P0298R3
784	</link>
785      </entry>
786      <entry align="center"> 7.1 </entry>
787      <entry><code> __cpp_lib_byte >= 201603 </code> (since 7.3, see Note 2)
788      </entry>
789    </row>
790
791    <row>
792      <?dbhtml bgcolor="#B0B0B0" ?>
793      <entry> Elementary string conversions </entry>
794      <entry>
795	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html">
796	P0067R5
797	</link>
798      </entry>
799      <entry align="center"> 8.1 (only integral types supported) </entry>
800      <entry><code> __has_include(&lt;charconv&gt;) </code>
801             <code> __cpp_lib_to_chars >= 201611 </code></entry>
802    </row>
803
804    <row>
805      <entry> Homogeneous interface for variant, any and optional </entry>
806      <entry>
807	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf">
808	P0032R3
809	</link>
810      </entry>
811      <entry align="center"> 7.1  </entry>
812      <entry>
813             <code> __cpp_lib_any >= 201606 </code>,
814             <code> __cpp_lib_optional >= 201606 </code>,
815             <code> __cpp_lib_variant >= 201606 </code>
816      </entry>
817    </row>
818
819    <row>
820      <entry> Making Optional Greater Equal Again </entry>
821      <entry>
822	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf">
823	P0307R2
824	</link>
825      </entry>
826      <entry align="center"> 7.1  </entry>
827      <entry> <code> __cpp_lib_optional >= 201606 </code> </entry>
828    </row>
829
830  </tbody>
831</tgroup>
832</table>
833
834<para>
835Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
836<code>__cpp_lib</code> macro is not defined, and compilation will fail if the
837header is included without using <option>-std</option> to enable C++17 support.
838</para>
839
840<para>
841Note 2: This feature is supported in older releases but the
842<code>__cpp_lib</code> macro is not defined to the right value
843(or not defined at all) until the version shown in parentheses.
844</para>
845
846<para>
847Note 3: The Parallel Algorithms have an external dependency on Intel TBB 2018
848or later. If the <filename class="headerfile">&lt;execution&gt;</filename>
849header is included then <code>-ltbb</code> must be used to link to TBB.
850</para>
851
852<para>
853Note 4: The mathematical special functions are enabled in C++17 mode from
854GCC 7.1 onwards. For GCC 6.x or for C++11/C++14 define
855<code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code> to a non-zero value
856and test for <code>__STDCPP_MATH_SPEC_FUNCS__ >= 201003L</code>.
857</para>
858
859
860
861<para>
862The following status table is based on the table of contents of
863ISO/IEC 14882:2017.
864Some subclauses are not shown in the table where the content is unchanged
865since C++14 and the implementation is complete.
866</para>
867
868<table frame="all" xml:id="table.cxx17_status">
869<title>C++ 2017 Implementation Status</title>
870
871<tgroup cols="4" align="left" colsep="0" rowsep="1">
872<colspec colname="c1"/>
873<colspec colname="c2"/>
874<colspec colname="c3"/>
875<colspec colname="c4"/>
876  <thead>
877    <row>
878      <entry>Section</entry>
879      <entry>Description</entry>
880      <entry>Status</entry>
881      <entry>Comments</entry>
882    </row>
883  </thead>
884
885  <tbody>
886
887    <row>
888      <entry>
889	<emphasis>21</emphasis>
890      </entry>
891      <entry namest="c2" nameend="c4" align="left">
892	<emphasis>Language support</emphasis>
893      </entry>
894    </row>
895
896    <row>
897      <entry>21.1</entry>
898      <entry>General</entry>
899      <entry/>
900      <entry/>
901    </row>
902    <row>
903      <entry>21.2</entry>
904      <entry>Common definitions</entry>
905      <entry/>
906      <entry/>
907    </row>
908    <row>
909      <entry>21.3</entry>
910      <entry>Implementation properties</entry>
911      <entry/>
912      <entry/>
913    </row>
914    <row>
915      <entry>21.3.1</entry>
916      <entry>General</entry>
917      <entry/>
918      <entry/>
919    </row>
920    <row>
921      <entry>21.3.2</entry>
922      <entry>Header <code>&lt;limits&gt;</code> synopsis</entry>
923      <entry/>
924      <entry/>
925    </row>
926    <row>
927      <entry>21.3.3</entry>
928      <entry>Floating-point type properties</entry>
929      <entry/>
930      <entry/>
931    </row>
932    <row>
933      <?dbhtml bgcolor="#C8B0B0" ?>
934      <entry>21.3.3.1</entry>
935      <entry><code>float_round_style</code></entry>
936      <entry>N</entry>
937      <entry/>
938    </row>
939    <row>
940      <?dbhtml bgcolor="#C8B0B0" ?>
941      <entry>21.3.3.2</entry>
942      <entry><code>float_denorm_style</code></entry>
943      <entry>N</entry>
944      <entry/>
945    </row>
946    <row>
947      <entry>21.3.4</entry>
948      <entry>Class template <code>numeric_limits</code></entry>
949      <entry>Y</entry>
950      <entry/>
951    </row>
952    <row>
953      <entry>21.3.5</entry>
954      <entry>Header <code>&lt;climits&gt;</code> synopsis</entry>
955      <entry>Y</entry>
956      <entry/>
957    </row>
958    <row>
959      <entry>21.3.6</entry>
960      <entry>Header <code>&lt;cfloat&gt;</code> synopsis</entry>
961      <entry>Y</entry>
962      <entry/>
963    </row>
964    <row>
965      <entry>21.4</entry>
966      <entry>Integer types</entry>
967      <entry/>
968      <entry/>
969    </row>
970    <row>
971      <entry>21.4.1</entry>
972      <entry>Header <code>&lt;cstdint&gt;</code> synopsis</entry>
973      <entry>Y</entry>
974      <entry/>
975    </row>
976    <row>
977      <?dbhtml bgcolor="#B0B0B0" ?>
978      <entry>21.5</entry>
979      <entry>Start and termination</entry>
980      <entry>Partial</entry>
981      <entry>C library dependency for quick_exit, at_quick_exit</entry>
982    </row>
983    <row>
984      <entry>21.6</entry>
985      <entry>Dynamic memory management</entry>
986      <entry/>
987      <entry/>
988    </row>
989    <row>
990      <entry>21.6.1</entry>
991      <entry>Header <code>&lt;new&gt;</code> synopsis</entry>
992      <entry/>
993      <entry/>
994    </row>
995    <row>
996      <entry>21.6.2</entry>
997      <entry>Storage allocation and deallocation</entry>
998      <entry>Y</entry>
999      <entry/>
1000    </row>
1001    <row>
1002      <entry>21.6.3</entry>
1003      <entry>Storage allocation errors</entry>
1004      <entry>Y</entry>
1005      <entry/>
1006    </row>
1007    <row>
1008      <entry>21.6.4</entry>
1009      <entry>Pointer optimization barrier</entry>
1010      <entry>Y</entry>
1011      <entry/>
1012    </row>
1013    <row>
1014      <?dbhtml bgcolor="#C8B0B0" ?>
1015      <entry>21.6.5</entry>
1016      <entry>Hardware interference size</entry>
1017      <entry>N</entry>
1018      <entry/>
1019    </row>
1020    <row>
1021      <entry>21.7</entry>
1022      <entry>Type identification</entry>
1023      <entry>Y</entry>
1024      <entry/>
1025    </row>
1026    <row>
1027      <entry>21.8</entry>
1028      <entry>Exception handling</entry>
1029      <entry/>
1030      <entry/>
1031    </row>
1032    <row>
1033      <entry>21.8.1</entry>
1034      <entry>Header <code>&lt;exception&gt;</code> synopsis</entry>
1035      <entry/>
1036      <entry/>
1037    </row>
1038    <row>
1039      <entry>21.8.2</entry>
1040      <entry>Class exception</entry>
1041      <entry>Y</entry>
1042      <entry/>
1043    </row>
1044    <row>
1045      <entry>21.8.3</entry>
1046      <entry>Class bad_exception</entry>
1047      <entry>Y</entry>
1048      <entry/>
1049    </row>
1050    <row>
1051      <entry>21.8.4</entry>
1052      <entry>Abnormal termination</entry>
1053      <entry>Y</entry>
1054      <entry/>
1055    </row>
1056    <row>
1057      <entry>21.8.5</entry>
1058      <entry><code>uncaught_exceptions</code></entry>
1059      <entry>Y</entry>
1060      <entry/>
1061    </row>
1062    <row>
1063      <entry>21.8.6</entry>
1064      <entry>Exception Propagation</entry>
1065      <entry>Y</entry>
1066      <entry/>
1067    </row>
1068    <row>
1069      <entry>21.8.7</entry>
1070      <entry><code>nested_exception</code></entry>
1071      <entry>Y</entry>
1072      <entry/>
1073    </row>
1074    <row>
1075      <entry>21.9</entry>
1076      <entry>Initializer lists</entry>
1077      <entry>Y</entry>
1078      <entry/>
1079    </row>
1080    <row>
1081      <entry>21.10</entry>
1082      <entry>Other runtime support</entry>
1083      <entry>Y</entry>
1084      <entry/>
1085    </row>
1086    <row>
1087      <entry>
1088	<emphasis>22</emphasis>
1089      </entry>
1090      <entry namest="c2" nameend="c4" align="left">
1091	<emphasis>Diagnostics</emphasis>
1092      </entry>
1093    </row>
1094    <row>
1095      <entry>22.1</entry>
1096      <entry>General</entry>
1097      <entry/>
1098      <entry/>
1099    </row>
1100    <row>
1101      <entry>22.2</entry>
1102      <entry>Exception classes</entry>
1103      <entry>Y</entry>
1104      <entry/>
1105    </row>
1106    <row>
1107      <entry>22.3</entry>
1108      <entry>Assertions</entry>
1109      <entry>Y</entry>
1110      <entry/>
1111    </row>
1112    <row>
1113      <entry>22.4</entry>
1114      <entry>Error numbers</entry>
1115      <entry>Y</entry>
1116      <entry/>
1117    </row>
1118    <row>
1119      <entry>22.5</entry>
1120      <entry>System error support</entry>
1121      <entry/>
1122      <entry/>
1123    </row>
1124    <row>
1125      <entry>
1126	<emphasis>23</emphasis>
1127      </entry>
1128      <entry namest="c2" nameend="c4" align="left">
1129	<emphasis>General utilities</emphasis>
1130      </entry>
1131    </row>
1132    <row>
1133      <entry>23.1</entry>
1134      <entry>General</entry>
1135      <entry/>
1136      <entry/>
1137    </row>
1138    <row>
1139      <entry>23.2</entry>
1140      <entry>Utility components</entry>
1141      <entry/>
1142      <entry/>
1143    </row>
1144    <row>
1145      <entry>23.2.1</entry>
1146      <entry>Header <code>&lt;utility&gt;</code> synopsis</entry>
1147      <entry/>
1148      <entry/>
1149    </row>
1150    <row>
1151      <entry>23.2.2</entry>
1152      <entry>Operators</entry>
1153      <entry>Y</entry>
1154      <entry/>
1155    </row>
1156    <row>
1157      <entry>23.2.3</entry>
1158      <entry><code>swap</code></entry>
1159      <entry>Y</entry>
1160      <entry/>
1161    </row>
1162    <row>
1163      <entry>23.2.4</entry>
1164      <entry><code>exchange</code></entry>
1165      <entry>Y</entry>
1166      <entry/>
1167    </row>
1168    <row>
1169      <entry>23.2.5</entry>
1170      <entry>Forward/move helpers</entry>
1171      <entry>Y</entry>
1172      <entry/>
1173    </row>
1174    <row>
1175      <entry>23.2.6</entry>
1176      <entry>Function template <code>as_const</code></entry>
1177      <entry>Y</entry>
1178      <entry/>
1179    </row>
1180    <row>
1181      <entry>23.2.7</entry>
1182      <entry>Function template <code>declval</code></entry>
1183      <entry>Y</entry>
1184      <entry/>
1185    </row>
1186    <row>
1187      <?dbhtml bgcolor="#B0B0B0" ?>
1188      <entry>23.2.8</entry>
1189      <entry>Primitive numeric output conversion</entry>
1190      <entry>Partial</entry>
1191      <entry>Only integer types supported, not floating-point types</entry>
1192    </row>
1193    <row>
1194      <?dbhtml bgcolor="#B0B0B0" ?>
1195      <entry>23.2.9</entry>
1196      <entry>Primitive numeric input conversion</entry>
1197      <entry>Partial</entry>
1198      <entry>Only integer types supported, not floating-point types</entry>
1199    </row>
1200    <row>
1201      <entry>23.3</entry>
1202      <entry>Compile-time integer sequences</entry>
1203      <entry/>
1204      <entry/>
1205    </row>
1206    <row>
1207      <entry>23.4</entry>
1208      <entry>Pairs</entry>
1209      <entry>Y</entry>
1210      <entry/>
1211    </row>
1212    <row>
1213      <entry>23.5</entry>
1214      <entry>Tuples</entry>
1215      <entry>Y</entry>
1216      <entry/>
1217    </row>
1218    <row>
1219      <entry>23.6</entry>
1220      <entry>Optional objects</entry>
1221      <entry>Y</entry>
1222      <entry/>
1223    </row>
1224    <row>
1225      <entry>23.7</entry>
1226      <entry>Variants</entry>
1227      <entry>Y</entry>
1228      <entry/>
1229    </row>
1230    <row>
1231      <entry>23.8</entry>
1232      <entry>Storage for any type</entry>
1233      <entry>Y</entry>
1234      <entry/>
1235    </row>
1236    <row>
1237      <entry>23.9</entry>
1238      <entry>Bitsets</entry>
1239      <entry>Y</entry>
1240      <entry/>
1241    </row>
1242    <row>
1243      <entry>23.10</entry>
1244      <entry>Memory</entry>
1245      <entry>Y</entry>
1246      <entry/>
1247    </row>
1248		<row>
1249      <entry>23.10.1</entry>
1250      <entry>In general</entry>
1251      <entry/>
1252      <entry/>
1253    </row>
1254		<row>
1255      <entry>23.10.2</entry>
1256      <entry>Header <code>&lt;memory&gt;</code> synopsis</entry>
1257      <entry>Y</entry>
1258      <entry/>
1259    </row>
1260		<row>
1261      <entry>23.10.3</entry>
1262      <entry>Pointer traits</entry>
1263      <entry>Y</entry>
1264      <entry/>
1265    </row>
1266		<row>
1267      <entry>23.10.4</entry>
1268      <entry>Pointer safety</entry>
1269      <entry>Y</entry>
1270      <entry/>
1271    </row>
1272		<row>
1273      <entry>23.10.5</entry>
1274      <entry>Align</entry>
1275      <entry>Y</entry>
1276      <entry/>
1277    </row>
1278		<row>
1279      <entry>23.10.6</entry>
1280      <entry>Allocator argument tag</entry>
1281      <entry>Y</entry>
1282      <entry/>
1283    </row>
1284		<row>
1285      <entry>23.10.7</entry>
1286      <entry><code>uses_allocator</code></entry>
1287      <entry>Y</entry>
1288      <entry/>
1289    </row>
1290		<row>
1291      <entry>23.10.8</entry>
1292      <entry>Allocator traits</entry>
1293      <entry>Y</entry>
1294      <entry/>
1295    </row>
1296		<row>
1297      <entry>23.10.9</entry>
1298      <entry>The default allocator</entry>
1299      <entry>Y</entry>
1300      <entry/>
1301    </row>
1302		<row>
1303      <entry>23.10.10</entry>
1304      <entry>Specialized algorithms</entry>
1305      <entry>Y</entry>
1306      <entry/>
1307    </row>
1308		<row>
1309      <entry>23.10.11</entry>
1310      <entry>C library memory allocation</entry>
1311      <entry>Y</entry>
1312      <entry/>
1313    </row>
1314    <row>
1315      <entry>23.11</entry>
1316      <entry>Smart pointers</entry>
1317      <entry/>
1318      <entry/>
1319    </row>
1320    <row>
1321      <entry>23.11.1</entry>
1322      <entry>Class template <code>unique_ptr</code></entry>
1323      <entry>Y</entry>
1324      <entry/>
1325    </row>
1326    <row>
1327      <entry>23.11.2</entry>
1328      <entry>Shared-ownership pointers</entry>
1329      <entry>Y</entry>
1330      <entry/>
1331    </row>
1332    <row>
1333      <entry>23.12</entry>
1334      <entry>Memory resources</entry>
1335      <entry/>
1336      <entry/>
1337    </row>
1338    <row>
1339      <entry>23.12.1</entry>
1340      <entry>Header <code>&lt;memory_resource&gt;</code> synopsis</entry>
1341      <entry>Y</entry>
1342      <entry/>
1343    </row>
1344    <row>
1345      <entry>23.12.2</entry>
1346      <entry>Class <code>memory_resource</code></entry>
1347      <entry>Y</entry>
1348      <entry/>
1349    </row>
1350    <row>
1351      <entry>23.12.3</entry>
1352      <entry>Class template <code>polymorphic_allocator</code></entry>
1353      <entry>Y</entry>
1354      <entry/>
1355    </row>
1356    <row>
1357      <entry>23.12.4</entry>
1358      <entry>Access to program-wide <code>memory_resource</code> objects</entry>
1359      <entry>Y</entry>
1360      <entry/>
1361    </row>
1362    <row>
1363      <entry>23.12.5</entry>
1364      <entry>Pool resource classes</entry>
1365      <entry>Y</entry>
1366      <entry/>
1367    </row>
1368    <row>
1369      <entry>23.12.6</entry>
1370      <entry>Class <code>monotonic_buffer_resource</code></entry>
1371      <entry>Y</entry>
1372      <entry/>
1373    </row>
1374    <row>
1375      <entry>23.13</entry>
1376      <entry>Class template <code>scoped_allocator_adaptor</code></entry>
1377      <entry>Y</entry>
1378      <entry/>
1379    </row>
1380    <row>
1381      <entry>23.14</entry>
1382      <entry>Function objects</entry>
1383      <entry/>
1384      <entry/>
1385    </row>
1386    <row>
1387      <entry>23.14.1</entry>
1388      <entry>Header <code>&lt;functional&gt;</code> synopsis</entry>
1389      <entry/>
1390      <entry/>
1391    </row>
1392    <row>
1393      <entry>23.14.2</entry>
1394      <entry>Definitions</entry>
1395      <entry/>
1396      <entry/>
1397    </row>
1398    <row>
1399      <entry>23.14.3</entry>
1400      <entry>Requirements</entry>
1401      <entry/>
1402      <entry/>
1403    </row>
1404    <row>
1405      <entry>23.14.4</entry>
1406      <entry>Function template <code>invoke</code></entry>
1407      <entry>Y</entry>
1408      <entry/>
1409    </row>
1410    <row>
1411      <entry>23.14.5</entry>
1412      <entry>Class template <code>reference_wrapper</code></entry>
1413      <entry>Y</entry>
1414      <entry/>
1415    </row>
1416    <row>
1417      <entry>23.14.6</entry>
1418      <entry>Arithmetic operation</entry>
1419      <entry>Y</entry>
1420      <entry/>
1421    </row>
1422    <row>
1423      <entry>23.14.7</entry>
1424      <entry>Comparisons</entry>
1425      <entry>Y</entry>
1426      <entry/>
1427    </row>
1428    <row>
1429      <entry>23.14.8</entry>
1430      <entry>Logical operations</entry>
1431      <entry>Y</entry>
1432      <entry/>
1433    </row>
1434    <row>
1435      <entry>23.14.9</entry>
1436      <entry>Bitwise operations</entry>
1437      <entry>Y</entry>
1438      <entry/>
1439    </row>
1440    <row>
1441      <entry>23.14.10</entry>
1442      <entry>Function template <code>not_fn</code></entry>
1443      <entry>Y</entry>
1444      <entry/>
1445    </row>
1446    <row>
1447      <entry>23.14.11</entry>
1448      <entry>Function object binders</entry>
1449      <entry>Y</entry>
1450      <entry/>
1451    </row>
1452    <row>
1453      <entry>23.14.12</entry>
1454      <entry>Function template <code>mem_fn</code></entry>
1455      <entry>Y</entry>
1456      <entry/>
1457    </row>
1458    <row>
1459      <entry>23.14.13</entry>
1460      <entry>Polymorphic function wrappers</entry>
1461      <entry>Y</entry>
1462      <entry/>
1463    </row>
1464    <row>
1465      <entry>23.14.14</entry>
1466      <entry>Searchers</entry>
1467      <entry>Y</entry>
1468      <entry/>
1469    </row>
1470    <row>
1471      <entry>23.14.15</entry>
1472      <entry>Class template <code>hash</code></entry>
1473      <entry>Y</entry>
1474      <entry/>
1475    </row>
1476    <row>
1477      <entry>23.15</entry>
1478      <entry>Metaprogramming and type traits</entry>
1479      <entry/>
1480      <entry/>
1481    </row>
1482    <row>
1483      <entry>23.15.1</entry>
1484      <entry>Requirements</entry>
1485      <entry/>
1486      <entry/>
1487    </row>
1488    <row>
1489      <entry>23.15.2</entry>
1490      <entry>Header <code>&lt;type_traits&gt;</code> synopsis</entry>
1491      <entry>Y</entry>
1492      <entry/>
1493    </row>
1494    <row>
1495      <entry>23.15.3</entry>
1496      <entry>Helper classes</entry>
1497      <entry>Y</entry>
1498      <entry/>
1499    </row>
1500    <row>
1501      <entry>23.15.4</entry>
1502      <entry>Unary Type Traits</entry>
1503      <entry>Y</entry>
1504      <entry/>
1505    </row>
1506    <row>
1507      <entry>23.15.5</entry>
1508      <entry>Type property queries</entry>
1509      <entry>Y</entry>
1510      <entry/>
1511    </row>
1512    <row>
1513      <entry>23.15.6</entry>
1514      <entry>Relationships between types</entry>
1515      <entry>Y</entry>
1516      <entry/>
1517    </row>
1518    <row>
1519      <entry>23.15.7</entry>
1520      <entry>Transformations between types</entry>
1521      <entry>Y</entry>
1522      <entry/>
1523    </row>
1524    <row>
1525      <entry>23.15.8</entry>
1526      <entry>Logical operator traits</entry>
1527      <entry>Y</entry>
1528      <entry/>
1529    </row>
1530    <row>
1531      <entry>23.16</entry>
1532      <entry>Compile-time rational arithmetic</entry>
1533      <entry>Y</entry>
1534      <entry/>
1535    </row>
1536    <row>
1537      <entry>23.17.1</entry>
1538      <entry>In general</entry>
1539      <entry/>
1540      <entry/>
1541    </row>
1542    <row>
1543      <entry>23.17.2</entry>
1544      <entry>Header <code>&lt;chrono&gt;</code> synopsis</entry>
1545      <entry/>
1546      <entry/>
1547    </row>
1548    <row>
1549      <entry>23.17</entry>
1550      <entry>Time utilities</entry>
1551      <entry/>
1552      <entry/>
1553    </row>
1554    <row>
1555      <entry>23.17.3</entry>
1556      <entry>Clock requirements</entry>
1557      <entry>Y</entry>
1558      <entry/>
1559    </row>
1560    <row>
1561      <entry>23.17.4</entry>
1562      <entry>Time-related traits</entry>
1563      <entry>Y</entry>
1564      <entry/>
1565    </row>
1566    <row>
1567      <entry>23.17.5</entry>
1568      <entry>Class template <code>duration</code></entry>
1569      <entry>Y</entry>
1570      <entry/>
1571    </row>
1572    <row>
1573      <entry>23.17.6</entry>
1574      <entry>Class template <code>time_point</code></entry>
1575      <entry>Y</entry>
1576      <entry/>
1577    </row>
1578    <row>
1579      <entry>23.17.7</entry>
1580      <entry>Clocks</entry>
1581      <entry>Y</entry>
1582      <entry/>
1583    </row>
1584    <row>
1585      <entry>23.17.8</entry>
1586      <entry>Header <code>&lt;ctime&gt;</code> synopsis</entry>
1587      <entry>Y</entry>
1588      <entry/>
1589    </row>
1590    <row>
1591      <entry>23.18</entry>
1592      <entry>Class <code>type_index</code></entry>
1593      <entry>Y</entry>
1594      <entry/>
1595    </row>
1596    <row>
1597      <entry>23.19</entry>
1598      <entry>Execution policies</entry>
1599      <entry/>
1600      <entry/>
1601    </row>
1602    <row>
1603      <entry>23.19.1</entry>
1604      <entry>In general</entry>
1605      <entry/>
1606      <entry/>
1607    </row>
1608    <row>
1609      <entry>23.19.2</entry>
1610      <entry>Header <code>&lt;execution&gt;</code> synopsis</entry>
1611      <entry/>
1612      <entry/>
1613    </row>
1614    <row>
1615      <entry>23.19.3</entry>
1616      <entry>Execution policy type trait</entry>
1617      <entry>Y</entry>
1618      <entry/>
1619    </row>
1620    <row>
1621      <entry>23.19.4</entry>
1622      <entry>Sequenced execution policy</entry>
1623      <entry>Y</entry>
1624      <entry/>
1625    </row>
1626    <row>
1627      <entry>23.19.5</entry>
1628      <entry>Parallel execution policy</entry>
1629      <entry>Y</entry>
1630      <entry/>
1631    </row>
1632    <row>
1633      <entry>23.19.6</entry>
1634      <entry>Parallel and unsequenced execution policy</entry>
1635      <entry>Y</entry>
1636      <entry/>
1637    </row>
1638    <row>
1639      <entry>23.19.7</entry>
1640      <entry>Execution policy objects</entry>
1641      <entry>Y</entry>
1642      <entry/>
1643    </row>
1644    <row>
1645      <entry>
1646	<emphasis>24</emphasis>
1647      </entry>
1648      <entry namest="c2" nameend="c4" align="left">
1649	<emphasis>Strings</emphasis>
1650      </entry>
1651    </row>
1652    <row>
1653      <entry>24.1</entry>
1654      <entry>General</entry>
1655      <entry/>
1656      <entry/>
1657    </row>
1658    <row>
1659      <entry>24.2</entry>
1660      <entry>Character traits</entry>
1661      <entry>Y</entry>
1662      <entry/>
1663    </row>
1664    <row>
1665      <entry>24.3</entry>
1666      <entry>String classes</entry>
1667      <entry>Y</entry>
1668      <entry/>
1669    </row>
1670    <row>
1671      <entry>24.4</entry>
1672      <entry>String view classes</entry>
1673      <entry>Y</entry>
1674      <entry/>
1675    </row>
1676    <row>
1677      <entry>24.4.1</entry>
1678      <entry>Header <code>&lt;string_view&gt;</code> synopsis</entry>
1679      <entry>Y</entry>
1680      <entry/>
1681    </row>
1682    <row>
1683      <entry>24.4.2</entry>
1684      <entry>Class template <code>basic_string_view</code></entry>
1685      <entry>Y</entry>
1686      <entry/>
1687    </row>
1688    <row>
1689      <entry>24.4.3</entry>
1690      <entry>Non-member comparison functions</entry>
1691      <entry>Y</entry>
1692      <entry/>
1693    </row>
1694    <row>
1695      <entry>24.4.4</entry>
1696      <entry>Inserters and extractors</entry>
1697      <entry>Y</entry>
1698      <entry/>
1699    </row>
1700    <row>
1701      <entry>24.4.5</entry>
1702      <entry>Hash support</entry>
1703      <entry>Y</entry>
1704      <entry/>
1705    </row>
1706    <row>
1707      <entry>24.4.6</entry>
1708      <entry>Suffix for <code>basic_string_view</code> literals</entry>
1709      <entry>Y</entry>
1710      <entry/>
1711    </row>
1712    <row>
1713      <?dbhtml bgcolor="#B0B0B0" ?>
1714      <entry>24.5</entry>
1715      <entry>Null-terminated sequence utilities</entry>
1716      <entry>Partial</entry>
1717      <entry>C library dependency. </entry>
1718    </row>
1719    <row>
1720      <entry>
1721	<emphasis>25</emphasis>
1722      </entry>
1723      <entry namest="c2" nameend="c4" align="left">
1724	<emphasis>Localization</emphasis>
1725      </entry>
1726    </row>
1727    <row>
1728      <entry>25.1</entry>
1729      <entry>General</entry>
1730      <entry>Y</entry>
1731      <entry/>
1732    </row>
1733    <row>
1734      <entry>25.2</entry>
1735      <entry>Header <code>&lt;locale&gt;</code> synopsis</entry>
1736      <entry>Y</entry>
1737      <entry/>
1738    </row>
1739    <row>
1740      <entry>25.3</entry>
1741      <entry>Locales</entry>
1742      <entry>Y</entry>
1743      <entry/>
1744    </row>
1745    <row>
1746      <entry>25.4</entry>
1747      <entry>Standard <code>locale</code> categories</entry>
1748      <entry>Y</entry>
1749      <entry/>
1750    </row>
1751    <row>
1752      <entry>25.5</entry>
1753      <entry>C Library Locales</entry>
1754      <entry>Y</entry>
1755      <entry/>
1756    </row>
1757    <row>
1758      <entry>
1759	<emphasis>26</emphasis>
1760      </entry>
1761      <entry namest="c2" nameend="c4" align="left">
1762	<emphasis>Containers</emphasis>
1763      </entry>
1764    </row>
1765    <row>
1766      <entry>26.1</entry>
1767      <entry>General</entry>
1768      <entry/>
1769      <entry/>
1770    </row>
1771    <row>
1772      <entry>26.2</entry>
1773      <entry>Container requirements</entry>
1774      <entry>Y</entry>
1775      <entry/>
1776    </row>
1777    <row>
1778      <entry>26.3</entry>
1779      <entry>Sequence containers</entry>
1780      <entry>Y</entry>
1781      <entry/>
1782    </row>
1783    <row>
1784      <entry>26.4</entry>
1785      <entry>Associative containers</entry>
1786      <entry>Y</entry>
1787      <entry/>
1788    </row>
1789    <row>
1790      <entry>26.5</entry>
1791      <entry>Unordered associative containers</entry>
1792      <entry>Y</entry>
1793      <entry/>
1794    </row>
1795    <row>
1796      <entry>26.6</entry>
1797      <entry>Container adaptors</entry>
1798      <entry>Y</entry>
1799      <entry/>
1800    </row>
1801    <row>
1802      <entry>
1803	<emphasis>27</emphasis>
1804      </entry>
1805      <entry namest="c2" nameend="c4" align="left">
1806	<emphasis>Iterators</emphasis>
1807      </entry>
1808    </row>
1809    <row>
1810      <entry>27.1</entry>
1811      <entry>General</entry>
1812      <entry>Y</entry>
1813      <entry/>
1814    </row>
1815    <row>
1816      <entry>27.2</entry>
1817      <entry>Iterator requirements</entry>
1818      <entry>Y</entry>
1819      <entry/>
1820    </row>
1821    <row>
1822      <entry>27.3</entry>
1823      <entry>Header <code>&lt;iterator&gt;</code> synopsis</entry>
1824      <entry>Y</entry>
1825      <entry/>
1826    </row>
1827    <row>
1828      <entry>27.4</entry>
1829      <entry>Iterator primitives</entry>
1830      <entry>Y</entry>
1831      <entry/>
1832    </row>
1833    <row>
1834      <entry>27.5</entry>
1835      <entry>Iterator adaptors</entry>
1836      <entry>Y</entry>
1837      <entry/>
1838    </row>
1839    <row>
1840      <entry>27.6</entry>
1841      <entry>Stream iterators</entry>
1842      <entry>Y</entry>
1843      <entry/>
1844    </row>
1845    <row>
1846      <entry>27.7</entry>
1847      <entry>Range access</entry>
1848      <entry>Y</entry>
1849      <entry/>
1850    </row>
1851    <row>
1852      <entry>27.8</entry>
1853      <entry>Container access</entry>
1854      <entry>Y</entry>
1855      <entry/>
1856    </row>
1857    <row>
1858      <entry>
1859	<emphasis>28</emphasis>
1860      </entry>
1861      <entry namest="c2" nameend="c4" align="left">
1862	<emphasis>Algorithms</emphasis>
1863      </entry>
1864    </row>
1865    <row>
1866      <entry>28.1</entry>
1867      <entry>General</entry>
1868      <entry/>
1869      <entry/>
1870    </row>
1871    <row>
1872      <entry>28.2</entry>
1873      <entry>Header <code>&lt;algorithm&gt;</code> synopsis</entry>
1874      <entry/>
1875      <entry/>
1876    </row>
1877    <row>
1878      <entry>28.3</entry>
1879      <entry>Algorithms requirements</entry>
1880      <entry/>
1881      <entry/>
1882    </row>
1883    <row>
1884      <entry>28.4</entry>
1885      <entry>Parallel algorithms</entry>
1886      <entry/>
1887      <entry>Using <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/llvm/llvm-project/tree/main/pstl">PSTL</link></entry>
1888    </row>
1889    <row>
1890      <entry>28.5</entry>
1891      <entry>Non-modifying sequence operations</entry>
1892      <entry>Y</entry>
1893      <entry/>
1894    </row>
1895    <row>
1896      <entry>28.6</entry>
1897      <entry>Mutating sequence operations</entry>
1898      <entry>Y</entry>
1899      <entry/>
1900    </row>
1901    <row>
1902      <entry>28.7</entry>
1903      <entry>Sorting and related operations</entry>
1904      <entry>Y</entry>
1905      <entry/>
1906    </row>
1907    <row>
1908      <entry>28.8</entry>
1909      <entry>C library algorithms</entry>
1910      <entry>Y</entry>
1911      <entry/>
1912    </row>
1913    <row>
1914      <entry>
1915      <emphasis>29</emphasis>
1916      </entry>
1917      <entry namest="c2" nameend="c4" align="left">
1918	<emphasis>Numerics</emphasis>
1919      </entry>
1920    </row>
1921    <row>
1922      <entry>29.1</entry>
1923      <entry>General</entry>
1924      <entry/>
1925      <entry/>
1926    </row>
1927    <row>
1928      <entry>29.2</entry>
1929      <entry>Definitions</entry>
1930      <entry/>
1931      <entry/>
1932    </row>
1933    <row>
1934      <entry>29.3</entry>
1935      <entry>Numeric type requirements</entry>
1936      <entry>Y</entry>
1937      <entry/>
1938    </row>
1939    <row>
1940      <entry>29.4</entry>
1941      <entry>The floating-point environment</entry>
1942      <entry>Y</entry>
1943      <entry/>
1944    </row>
1945    <row>
1946      <entry>29.5</entry>
1947      <entry>Complex numbers</entry>
1948      <entry>Y</entry>
1949      <entry/>
1950    </row>
1951    <row>
1952      <entry>29.6</entry>
1953      <entry>Random number generation</entry>
1954      <entry>Y</entry>
1955      <entry/>
1956    </row>
1957    <row>
1958      <entry>29.7</entry>
1959      <entry>Numeric arrays</entry>
1960      <entry>Y</entry>
1961      <entry/>
1962    </row>
1963    <row>
1964      <entry>29.8</entry>
1965      <entry>Generalized numeric operations</entry>
1966      <entry/>
1967      <entry/>
1968    </row>
1969    <row>
1970      <entry>29.8.1</entry>
1971      <entry>Header <code>&lt;numeric&gt;</code> synopsis</entry>
1972      <entry/>
1973      <entry/>
1974    </row>
1975    <row>
1976      <entry>29.8.2</entry>
1977      <entry>Accumulate</entry>
1978      <entry>Y</entry>
1979      <entry/>
1980    </row>
1981    <row>
1982      <entry>29.8.3</entry>
1983      <entry>Reduce</entry>
1984      <entry>Y</entry>
1985      <entry/>
1986    </row>
1987    <row>
1988      <entry>29.8.4</entry>
1989      <entry>Inner product</entry>
1990      <entry>Y</entry>
1991      <entry/>
1992    </row>
1993    <row>
1994      <entry>29.8.5</entry>
1995      <entry>Transform reduce</entry>
1996      <entry>Y</entry>
1997      <entry/>
1998    </row>
1999    <row>
2000      <entry>29.8.6</entry>
2001      <entry>Partial sum</entry>
2002      <entry>Y</entry>
2003      <entry/>
2004    </row>
2005    <row>
2006      <entry>29.8.7</entry>
2007      <entry>Exclusive scan</entry>
2008      <entry>Y</entry>
2009      <entry/>
2010    </row>
2011    <row>
2012      <entry>29.8.8</entry>
2013      <entry>Inclusive scan</entry>
2014      <entry>Y</entry>
2015      <entry/>
2016    </row>
2017    <row>
2018      <entry>29.8.9</entry>
2019      <entry>Transform exclusive scan</entry>
2020      <entry>Y</entry>
2021      <entry/>
2022    </row>
2023    <row>
2024      <entry>29.8.10</entry>
2025      <entry>Transform inclusive scan</entry>
2026      <entry>Y</entry>
2027      <entry/>
2028    </row>
2029    <row>
2030      <entry>29.8.11</entry>
2031      <entry>Adjacent difference</entry>
2032      <entry>Y</entry>
2033      <entry/>
2034    </row>
2035    <row>
2036      <entry>29.8.12</entry>
2037      <entry>Iota</entry>
2038      <entry>Y</entry>
2039      <entry/>
2040    </row>
2041    <row>
2042      <entry>29.8.13</entry>
2043      <entry>Greatest common divisor</entry>
2044      <entry>Y</entry>
2045      <entry/>
2046    </row>
2047    <row>
2048      <entry>29.8.14</entry>
2049      <entry>Least common multiple</entry>
2050      <entry>Y</entry>
2051      <entry/>
2052    </row>
2053    <row>
2054      <entry>29.9</entry>
2055      <entry>Mathematical functions for floating-point types</entry>
2056      <entry/>
2057      <entry/>
2058    </row>
2059    <row>
2060      <entry>29.9.1</entry>
2061      <entry>Header <code>&lt;cmath&gt;</code> synopsis</entry>
2062      <entry/>
2063      <entry/>
2064    </row>
2065    <row>
2066      <entry>29.9.2</entry>
2067      <entry>Absolute values</entry>
2068      <entry>Y</entry>
2069      <entry/>
2070    </row>
2071    <row>
2072      <entry>29.9.3</entry>
2073      <entry>Three-dimensional hypotenuse</entry>
2074      <entry>Y</entry>
2075      <entry/>
2076    </row>
2077    <row>
2078      <entry>29.9.4</entry>
2079      <entry>Classification / comparison functions</entry>
2080      <entry>Y</entry>
2081      <entry/>
2082    </row>
2083    <row>
2084      <entry>29.9.5</entry>
2085      <entry>Mathematical special functions</entry>
2086      <entry>Y</entry>
2087      <entry/>
2088    </row>
2089    <row>
2090      <entry>
2091	<emphasis>30</emphasis>
2092      </entry>
2093      <entry namest="c2" nameend="c4" align="left">
2094	<emphasis>Input/output library</emphasis>
2095      </entry>
2096    </row>
2097    <row>
2098      <entry>30.1</entry>
2099      <entry>General</entry>
2100      <entry>Y</entry>
2101      <entry/>
2102    </row>
2103    <row>
2104      <entry>30.2</entry>
2105      <entry>Iostreams requirements</entry>
2106      <entry>Y</entry>
2107      <entry/>
2108    </row>
2109    <row>
2110      <entry>30.2.1</entry>
2111      <entry>Imbue Limitations</entry>
2112      <entry>Y</entry>
2113      <entry/>
2114    </row>
2115    <row>
2116      <entry>30.2.2</entry>
2117      <entry>Positioning Type Limitations</entry>
2118      <entry>Y</entry>
2119      <entry/>
2120    </row>
2121    <row>
2122      <?dbhtml bgcolor="#B0B0B0" ?>
2123      <entry>30.2.3</entry>
2124      <entry>Thread safety</entry>
2125      <entry>Partial</entry>
2126      <entry/>
2127    </row>
2128    <row>
2129      <entry>30.3</entry>
2130      <entry>Forward declarations</entry>
2131      <entry>Y</entry>
2132      <entry/>
2133    </row>
2134    <row>
2135      <entry>30.4</entry>
2136      <entry>Standard iostream objects</entry>
2137      <entry>Y</entry>
2138      <entry/>
2139    </row>
2140    <row>
2141      <entry>30.5</entry>
2142      <entry>Iostreams base classes</entry>
2143      <entry>Y</entry>
2144      <entry/>
2145    </row>
2146    <row>
2147      <entry>30.6</entry>
2148      <entry>Stream buffers</entry>
2149      <entry>Y</entry>
2150      <entry/>
2151    </row>
2152    <row>
2153      <entry>30.7</entry>
2154      <entry>Formatting and manipulators</entry>
2155      <entry>Y</entry>
2156      <entry/>
2157    </row>
2158    <row>
2159      <entry>30.8</entry>
2160      <entry>String-based streams</entry>
2161      <entry>Y</entry>
2162      <entry/>
2163    </row>
2164    <row>
2165      <entry>30.9</entry>
2166      <entry>File-based streams</entry>
2167      <entry>Y</entry>
2168      <entry/>
2169    </row>
2170    <row>
2171      <entry>30.10</entry>
2172      <entry>File systemss</entry>
2173      <entry>Y</entry>
2174      <entry/>
2175    </row>
2176    <row>
2177      <entry>30.11</entry>
2178      <entry>C library files</entry>
2179      <entry>Y</entry>
2180      <entry/>
2181    </row>
2182    <row>
2183      <entry>
2184	<emphasis>31</emphasis>
2185      </entry>
2186      <entry namest="c2" nameend="c4" align="left">
2187	<emphasis>Regular expressions</emphasis>
2188      </entry>
2189    </row>
2190    <row>
2191      <entry>31.1</entry>
2192      <entry>General</entry>
2193      <entry>Y</entry>
2194      <entry/>
2195    </row>
2196    <row>
2197      <entry>31.2</entry>
2198      <entry>Definitions</entry>
2199      <entry>Y</entry>
2200      <entry/>
2201    </row>
2202    <row>
2203      <entry>31.3</entry>
2204      <entry>Requirements</entry>
2205      <entry>Y</entry>
2206      <entry/>
2207    </row>
2208    <row>
2209      <entry>31.4</entry>
2210      <entry>Header <code>&lt;regex&gt;</code> synopsis</entry>
2211      <entry>Y</entry>
2212      <entry/>
2213    </row>
2214    <row>
2215      <entry>31.5</entry>
2216      <entry>Namespace <code>std::regex_constants</code></entry>
2217      <entry>Y</entry>
2218      <entry/>
2219    </row>
2220    <row>
2221      <entry>31.6</entry>
2222      <entry>Class <code>regex_error</code></entry>
2223      <entry>Y</entry>
2224      <entry/>
2225    </row>
2226    <row>
2227      <?dbhtml bgcolor="#B0B0B0" ?>
2228      <entry>31.7</entry>
2229      <entry>Class template <code>regex_traits</code></entry>
2230      <entry>Partial</entry>
2231      <entry><code>transform_primary</code> is not correctly implemented</entry>
2232      <entry/>
2233    </row>
2234    <row>
2235      <entry>31.8</entry>
2236      <entry>Class template <code>basic_regex</code></entry>
2237      <entry>Y</entry>
2238      <entry/>
2239    </row>
2240    <row>
2241      <entry>31.9</entry>
2242      <entry>Class template <code>sub_match</code></entry>
2243      <entry>Y</entry>
2244      <entry/>
2245    </row>
2246    <row>
2247      <entry>31.10</entry>
2248      <entry>Class template <code>match_results</code></entry>
2249      <entry>Y</entry>
2250      <entry/>
2251    </row>
2252    <row>
2253      <entry>31.11</entry>
2254      <entry>Regular expression algorithms</entry>
2255      <entry>Y</entry>
2256      <entry/>
2257    </row>
2258    <row>
2259      <entry>31.12</entry>
2260      <entry>Regular expression Iterators</entry>
2261      <entry>Y</entry>
2262      <entry/>
2263    </row>
2264    <row>
2265      <entry>31.13</entry>
2266      <entry>Modified ECMAScript regular expression grammar</entry>
2267      <entry>Y</entry>
2268      <entry/>
2269    </row>
2270    <row>
2271      <entry>
2272	<emphasis>32</emphasis>
2273      </entry>
2274      <entry namest="c2" nameend="c4" align="left">
2275	<emphasis>Atomic operations</emphasis>
2276      </entry>
2277    </row>
2278    <row>
2279      <entry>32.1</entry>
2280      <entry>General</entry>
2281      <entry>Y</entry>
2282      <entry/>
2283    </row>
2284    <row>
2285      <entry>32.2</entry>
2286      <entry>Header <code>&lt;atomic&gt;</code> synopsis</entry>
2287      <entry>Y</entry>
2288      <entry/>
2289    </row>
2290    <row>
2291      <entry>32.3</entry>
2292      <entry>Type aliases</entry>
2293      <entry>Y</entry>
2294      <entry/>
2295    </row>
2296    <row>
2297      <entry>32.4</entry>
2298      <entry>Order and consistency</entry>
2299      <entry>Y</entry>
2300      <entry/>
2301    </row>
2302    <row>
2303      <entry>32.5</entry>
2304      <entry>Lock-free property</entry>
2305      <entry>Y</entry>
2306      <entry/>
2307    </row>
2308    <row>
2309      <entry>32.6</entry>
2310      <entry>Class template <code>&lt;atomic&gt;</code></entry>
2311      <entry>Y</entry>
2312      <entry/>
2313    </row>
2314    <row>
2315      <entry>32.7</entry>
2316      <entry>Non-member functions</entry>
2317      <entry>Y</entry>
2318      <entry/>
2319    </row>
2320    <row>
2321      <entry>32.8</entry>
2322      <entry>Flag Type and operations</entry>
2323      <entry>Y</entry>
2324      <entry/>
2325    </row>
2326    <row>
2327      <entry>32.9</entry>
2328      <entry>Fences</entry>
2329      <entry>Y</entry>
2330      <entry/>
2331    </row>
2332    <row>
2333      <entry>
2334	<emphasis>33</emphasis>
2335      </entry>
2336      <entry namest="c2" nameend="c4" align="left">
2337	<emphasis>Thread support</emphasis>
2338      </entry>
2339    </row>
2340    <row>
2341      <entry>33.1</entry>
2342      <entry>General</entry>
2343      <entry>Y</entry>
2344      <entry/>
2345    </row>
2346    <row>
2347      <entry>33.2</entry>
2348      <entry>Requirements</entry>
2349      <entry>Y</entry>
2350      <entry/>
2351    </row>
2352    <row>
2353      <entry>33.3</entry>
2354      <entry>Threads</entry>
2355      <entry/>
2356      <entry/>
2357    </row>
2358    <row>
2359      <entry>33.3.1</entry>
2360      <entry>Header <code>thread</code> synopsis</entry>
2361      <entry/>
2362      <entry/>
2363    </row>
2364    <row>
2365      <entry>33.3.2</entry>
2366      <entry>Class <code>thread</code></entry>
2367      <entry>Y</entry>
2368      <entry/>
2369    </row>
2370    <row>
2371      <?dbhtml bgcolor="#B0B0B0" ?>
2372      <entry>33.3.2.1</entry>
2373      <entry>Class <code>thread</code></entry>
2374      <entry>Partial</entry>
2375      <entry><code>thread::id</code> comparisons not well-defined</entry>
2376    </row>
2377    <row>
2378      <entry>33.3.3</entry>
2379      <entry>Namespace <code>this_thread</code></entry>
2380      <entry>Y</entry>
2381      <entry/>
2382    </row>
2383    <row>
2384      <entry>33.4</entry>
2385      <entry>Mutual exclusion</entry>
2386      <entry/>
2387      <entry/>
2388    </row>
2389    <row>
2390      <entry>33.4.3</entry>
2391      <entry>Mutex requirements</entry>
2392      <entry/>
2393      <entry/>
2394    </row>
2395    <row>
2396      <entry>33.4.3.1</entry>
2397      <entry>In general</entry>
2398      <entry/>
2399      <entry/>
2400    </row>
2401    <row>
2402      <entry>33.4.3.2</entry>
2403      <entry>Mutex types</entry>
2404      <entry/>
2405      <entry/>
2406    </row>
2407    <row>
2408      <entry>33.4.3.2.1</entry>
2409      <entry>Class <code>mutex</code></entry>
2410      <entry>Y</entry>
2411      <entry/>
2412    </row>
2413    <row>
2414      <entry>33.4.3.2.2</entry>
2415      <entry>Class <code>recursive_mutex</code></entry>
2416      <entry>Y</entry>
2417      <entry/>
2418    </row>
2419    <row>
2420      <entry>33.4.3.3</entry>
2421      <entry>Timed mutex types</entry>
2422      <entry/>
2423      <entry/>
2424    </row>
2425    <row>
2426      <entry>33.4.3.3.1</entry>
2427      <entry>Class <code>timed_mutex</code></entry>
2428      <entry>Y</entry>
2429      <entry/>
2430    </row>
2431    <row>
2432      <entry>33.4.3.3.2</entry>
2433      <entry>Class <code>recursive_timed_mutex</code></entry>
2434      <entry>Y</entry>
2435      <entry/>
2436    </row>
2437    <row>
2438      <entry>33.4.3.4</entry>
2439      <entry>Shared mutex types</entry>
2440      <entry/>
2441      <entry/>
2442    </row>
2443    <row>
2444      <entry>33.4.3.4.1</entry>
2445      <entry>Class <code>shared_mutex</code></entry>
2446      <entry>Y</entry>
2447      <entry/>
2448    </row>
2449    <row>
2450      <entry>33.4.3.5</entry>
2451      <entry>Shared timed mutex types</entry>
2452      <entry/>
2453      <entry/>
2454    </row>
2455    <row>
2456      <entry>33.4.3.5.1</entry>
2457      <entry>Class <code>shared_timed_mutex</code></entry>
2458      <entry>Y</entry>
2459      <entry/>
2460    </row>
2461    <row>
2462      <entry>33.4.4</entry>
2463      <entry>Locks</entry>
2464      <entry/>
2465      <entry/>
2466    </row>
2467    <row>
2468      <entry>33.4.4.1</entry>
2469      <entry>Class template <code>lock_guard</code></entry>
2470      <entry>Y</entry>
2471      <entry/>
2472    </row>
2473    <row>
2474      <entry>33.4.4.2</entry>
2475      <entry>Class template <code>scoped_guard</code></entry>
2476      <entry>Y</entry>
2477      <entry/>
2478    </row>
2479    <row>
2480      <entry>33.4.4.3</entry>
2481      <entry>Class template <code>unique_lock</code></entry>
2482      <entry>Y</entry>
2483      <entry/>
2484    </row>
2485    <row>
2486      <entry>33.4.4.4</entry>
2487      <entry>Class template <code>shared_lock</code></entry>
2488      <entry>Y</entry>
2489      <entry/>
2490    </row>
2491    <row>
2492      <entry>33.4.5</entry>
2493      <entry>Generic locking algorithms</entry>
2494      <entry>Y</entry>
2495      <entry/>
2496    </row>
2497    <row>
2498      <entry>33.4.6</entry>
2499      <entry>Call once</entry>
2500      <entry/>
2501      <entry/>
2502    </row>
2503    <row>
2504      <entry>33.4.6.1</entry>
2505      <entry>Struct <code>once_flag</code></entry>
2506      <entry>Y</entry>
2507      <entry/>
2508    </row>
2509    <row>
2510      <?dbhtml bgcolor="#B0B0B0" ?>
2511      <entry>33.4.6.2</entry>
2512      <entry>Function <code>call_once</code></entry>
2513      <entry>Broken</entry>
2514      <entry>See <link xmlns:xlink="http://www.w3.org/1999/xlink"
2515	xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR
2516	66146</link>
2517      </entry>
2518    </row>
2519    <row>
2520      <entry>33.5</entry>
2521      <entry>Condition variables</entry>
2522      <entry>Y</entry>
2523      <entry/>
2524    </row>
2525    <row>
2526      <entry>33.5.1</entry>
2527      <entry>Class <code>condition_variable</code></entry>
2528      <entry>Y</entry>
2529      <entry/>
2530    </row>
2531    <row>
2532      <entry>33.5.2</entry>
2533      <entry>Class <code>condition_variable_any</code></entry>
2534      <entry>Y</entry>
2535      <entry/>
2536    </row>
2537    <row>
2538      <entry>33.6</entry>
2539      <entry>Futures</entry>
2540      <entry/>
2541      <entry/>
2542    </row>
2543    <row>
2544      <entry>33.6.1</entry>
2545      <entry>Overview</entry>
2546      <entry/>
2547      <entry/>
2548    </row>
2549    <row>
2550      <entry>33.6.2</entry>
2551      <entry>Header <code>&lt;future&gt;</code></entry>
2552      <entry/>
2553      <entry/>
2554    </row>
2555    <row>
2556      <entry>33.6.3</entry>
2557      <entry>Error handling</entry>
2558      <entry>Y</entry>
2559      <entry/>
2560    </row>
2561    <row>
2562      <entry>33.6.4</entry>
2563      <entry>Class <code>future_error</code></entry>
2564      <entry>Y</entry>
2565      <entry/>
2566    </row>
2567    <row>
2568      <entry>33.6.5</entry>
2569      <entry>Shared state</entry>
2570      <entry>Y</entry>
2571      <entry/>
2572    </row>
2573    <row>
2574      <entry>33.6.6</entry>
2575      <entry>Class template <code>promise</code></entry>
2576      <entry>Y</entry>
2577      <entry/>
2578    </row>
2579    <row>
2580      <entry>33.6.7</entry>
2581      <entry>Class template <code>future</code></entry>
2582      <entry>Y</entry>
2583      <entry/>
2584    </row>
2585    <row>
2586      <entry>33.6.8</entry>
2587      <entry>Class template <code>shared_future</code></entry>
2588      <entry>Y</entry>
2589      <entry/>
2590    </row>
2591    <row>
2592      <entry>33.6.9</entry>
2593      <entry>Function template <code>async</code></entry>
2594      <entry>Y</entry>
2595      <entry/>
2596    </row>
2597    <row>
2598      <entry>33.6.10</entry>
2599      <entry>Class template <code>packaged_task</code></entry>
2600      <entry>Y</entry>
2601      <entry/>
2602    </row>
2603    <row>
2604      <entry>
2605	<emphasis>Appendix D</emphasis>
2606      </entry>
2607      <entry namest="c2" nameend="c4" align="left">
2608	<emphasis>Compatibility features</emphasis>
2609      </entry>
2610    </row>
2611    <row>
2612      <entry>D.4</entry>
2613      <entry>C++ standard library headers</entry>
2614      <entry>Y</entry>
2615      <entry/>
2616    </row>
2617    <row>
2618      <entry>D.4.1</entry>
2619      <entry>Header <code>&lt;ccomplex&gt;</code> synopsis</entry>
2620      <entry>Y</entry>
2621      <entry/>
2622    </row>
2623    <row>
2624      <entry>D.4.1</entry>
2625      <entry>Header <code>&lt;cstdalign&gt;</code> synopsis</entry>
2626      <entry>Y</entry>
2627      <entry/>
2628    </row>
2629    <row>
2630      <entry>D.4.1</entry>
2631      <entry>Header <code>&lt;cstdbool&gt;</code> synopsis</entry>
2632      <entry>Y</entry>
2633      <entry/>
2634    </row>
2635    <row>
2636      <entry>D.4.1</entry>
2637      <entry>Header <code>&lt;ctgmath&gt;</code> synopsis</entry>
2638      <entry>Y</entry>
2639      <entry/>
2640    </row>
2641    <row>
2642      <entry>D.5</entry>
2643      <entry>C standard library headers</entry>
2644      <entry>Y</entry>
2645      <entry/>
2646    </row>
2647    <row>
2648      <entry>D.6</entry>
2649      <entry><code>char*</code> streams</entry>
2650      <entry>Y</entry>
2651      <entry/>
2652    </row>
2653    <row>
2654      <entry>D.7</entry>
2655      <entry><code>uncaught_exception</code></entry>
2656      <entry>Y</entry>
2657      <entry/>
2658    </row>
2659    <row>
2660      <entry>D.8</entry>
2661      <entry>Old adaptable function bindings</entry>
2662      <entry>Y</entry>
2663      <entry/>
2664    </row>
2665    <row>
2666      <entry>D.9</entry>
2667      <entry>The default allocator</entry>
2668      <entry>Y</entry>
2669      <entry/>
2670    </row>
2671    <row>
2672      <entry>D.10</entry>
2673      <entry>Raw storage iterator</entry>
2674      <entry>Y</entry>
2675      <entry/>
2676    </row>
2677    <row>
2678      <entry>D.11</entry>
2679      <entry>Temporary buffers</entry>
2680      <entry>Y</entry>
2681      <entry/>
2682    </row>
2683    <row>
2684      <entry>D.12</entry>
2685      <entry>Deprecated type traits</entry>
2686      <entry>Y</entry>
2687      <entry/>
2688    </row>
2689    <row>
2690      <entry>D.13</entry>
2691      <entry>Deprecated iterator primitives</entry>
2692      <entry>Y</entry>
2693      <entry/>
2694    </row>
2695    <row>
2696      <entry>D.14</entry>
2697      <entry>Deprecated <code>shared_ptr</code> observers</entry>
2698      <entry>Y</entry>
2699      <entry/>
2700    </row>
2701    <row>
2702      <entry>D.15</entry>
2703      <entry>Deprecated standard code conversion facets</entry>
2704      <entry>Y</entry>
2705      <entry/>
2706    </row>
2707    <row>
2708      <entry>D.16</entry>
2709      <entry>Deprecated convenience conversion interfaces</entry>
2710      <entry>Y</entry>
2711      <entry/>
2712    </row>
2713
2714  </tbody>
2715</tgroup>
2716</table>
2717
2718<table frame="all" xml:id="table.cxx17_ts_status">
2719<title>C++ Technical Specifications Implementation Status</title>
2720
2721<tgroup cols="4" align="left" colsep="0" rowsep="1">
2722<colspec colname="c1"/>
2723<colspec colname="c2"/>
2724<colspec colname="c3"/>
2725<colspec colname="c4"/>
2726  <thead>
2727    <row>
2728      <entry>Paper</entry>
2729      <entry>Title</entry>
2730      <entry>Status</entry>
2731      <entry>Comments</entry>
2732    </row>
2733  </thead>
2734
2735  <tbody>
2736
2737    <row>
2738      <entry>
2739	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4076.html">
2740	  N4076
2741	</link>
2742      </entry>
2743      <entry>A generalized callable negator</entry>
2744      <entry>Y</entry>
2745      <entry>Library Fundamentals 2 TS</entry>
2746    </row>
2747
2748    <row>
2749      <entry>
2750	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4273.htm">
2751	  N4273
2752	</link>
2753      </entry>
2754      <entry>Uniform Container Erasure</entry>
2755      <entry>Y</entry>
2756      <entry>Library Fundamentals 2 TS</entry>
2757    </row>
2758
2759    <row>
2760      <entry>
2761	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4061.pdf">
2762	  N4061
2763	</link>
2764      </entry>
2765      <entry>Greatest Common Divisor and Least Common Multiple</entry>
2766      <entry>Y</entry>
2767      <entry>Library Fundamentals 2 TS</entry>
2768    </row>
2769
2770    <row>
2771      <entry>
2772	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4066.htm">
2773	  N4066
2774	</link>
2775      </entry>
2776      <entry>Delimited iterators</entry>
2777      <entry>Y</entry>
2778      <entry>Library Fundamentals 2 TS</entry>
2779    </row>
2780
2781    <row>
2782      <entry>
2783	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4282.pdf">
2784	  N4282
2785	</link>
2786      </entry>
2787      <entry>The World's Dumbest Smart Pointer</entry>
2788      <entry>Y</entry>
2789      <entry>Library Fundamentals 2 TS</entry>
2790    </row>
2791
2792
2793    <row>
2794      <entry>
2795	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4388.html">
2796	  N4388
2797	</link>
2798      </entry>
2799      <entry>Const-Propagating Wrapper</entry>
2800      <entry>Y</entry>
2801      <entry>Library Fundamentals 2 TS</entry>
2802    </row>
2803
2804    <row>
2805      <entry>
2806	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4391.html">
2807	  N4391
2808	</link>
2809      </entry>
2810      <entry> <code>make_array</code>, revision 4 </entry>
2811      <entry>Y</entry>
2812      <entry>Library Fundamentals 2 TS</entry>
2813    </row>
2814
2815    <row>
2816      <entry>
2817	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf">
2818	  N4502
2819	</link>
2820      </entry>
2821      <entry> Support for the C++ Detection Idiom, V2 </entry>
2822      <entry>Y</entry>
2823      <entry>Library Fundamentals 2 TS</entry>
2824    </row>
2825
2826    <row>
2827      <entry>
2828	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4519.pdf">
2829	  N4519
2830	</link>
2831      </entry>
2832      <entry> Source-Code Information Capture </entry>
2833      <entry>Y</entry>
2834      <entry>Library Fundamentals 2 TS</entry>
2835    </row>
2836
2837    <row>
2838      <?dbhtml bgcolor="#C8B0B0" ?>
2839      <entry>
2840	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4521.html">
2841	  N4521
2842	</link>
2843      </entry>
2844      <entry> Merge Fundamentals V1 into V2 </entry>
2845      <entry>
2846        N (components from V1 are still in namespace
2847        <code>fundamentals_v1</code>)
2848      </entry>
2849      <entry>Library Fundamentals 2 TS</entry>
2850    </row>
2851
2852    <row>
2853      <entry>
2854	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html">
2855	  P0013R1
2856	</link>
2857      </entry>
2858      <entry>Logical Operator Type Traits (revision 1)</entry>
2859      <entry>Y</entry>
2860      <entry>Library Fundamentals 2 TS</entry>
2861    </row>
2862
2863    <row>
2864      <entry>
2865	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4531.html">
2866	  N4531
2867	</link>
2868      </entry>
2869      <entry>std::rand replacement, revision 3</entry>
2870      <entry>Y</entry>
2871      <entry>Library Fundamentals 2 TS</entry>
2872    </row>
2873
2874  </tbody>
2875</tgroup>
2876</table>
2877
2878<section xml:id="iso.2017.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
2879
2880   <para>For behaviour which is also specified by previous standards,
2881      see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
2882      Specific Behavior</link> and <link linkend="iso.2011.specific">C++
2883      2011 Implementation Specific Behavior</link>. This section only
2884      documents behaviour which is new in the 2017 standard.
2885   </para>
2886
2887   <para>
2888      <emphasis>20.5.1.2 [headers]</emphasis>
2889      Whether names from Annex K are declared by C++ headers depends on
2890      whether the underlying C library supports Annex K and declares the
2891      names. For the GNU C library, there is no Annex K support and so
2892      none of its names are declared by C++ headers.
2893   </para>
2894
2895   <para>
2896      <emphasis>23.6.5 [optional.bad_optional_access]</emphasis>
2897      <code>what()</code> returns <literal>"bad optional access"</literal>.
2898   </para>
2899
2900   <para>
2901      <emphasis>23.7.3 [variant.variant]</emphasis>
2902      <classname>variant</classname> supports over-aligned types.
2903   </para>
2904
2905   <para>
2906      <emphasis>23.7.10 [variant.bad.access]</emphasis>
2907      <code>what()</code> returns one of the strings
2908      <literal>"std::get: variant is valueless"</literal>,
2909      <literal>"std::get: wrong index for variant"</literal>,
2910      <literal>"std::visit: variant is valueless"</literal>,
2911      or <literal>"std::visit&lt;R&gt;: variant is valueless"</literal>.
2912   </para>
2913
2914   <para>
2915      <emphasis>23.12.5.2 [memory.resource.pool.options]</emphasis>
2916      Let S equal <code>numeric_limits&lt;size_t&gt;::digits</code>.
2917      The limit for maximum number of blocks in a chunk is given by
2918      <inlineequation><mathphrase>2<superscript>N</superscript>-1</mathphrase></inlineequation>,
2919      where N is <inlineequation><mathphrase>min(19, 3 + S/2)</mathphrase></inlineequation>.
2920      The largest allocation size that will be allocated from a pool is
2921      <inlineequation><mathphrase>2<superscript>22</superscript></mathphrase></inlineequation>
2922      when <inlineequation><mathphrase>S > 20</mathphrase></inlineequation>,
2923      otherwise 3072 when <inlineequation><mathphrase>S > 16</mathphrase></inlineequation>,
2924      otherwise 768.
2925   </para>
2926
2927   <para>
2928      <emphasis>23.12.6.1 [memory.resource.monotonic.buffer.ctor]</emphasis>
2929      The default <code>next_buffer_size</code> is <code>128 * sizeof(void*)</code>.
2930      The default growth factor is <code>1.5</code>.
2931   </para>
2932
2933   <para>
2934      <emphasis>23.15.4.3 [meta.unary.prop]</emphasis>
2935      The predicate condition for
2936      <code>has_unique_object_representations</code> is true for all scalar
2937      types except floating point types.
2938   </para>
2939
2940   <para>
2941      <emphasis>23.19.3 [execpol.type],
2942      28.4.3 [algorithms.parallel.exec]</emphasis>
2943      There are no implementation-defined execution policies.
2944   </para>
2945
2946   <para>
2947      <emphasis>24.4.2 [string.view.template]</emphasis>
2948      <classname>basic_string_view&lt;C, T&gt;::iterator</classname> is
2949      <code>C*</code> and
2950      <classname>basic_string_view&lt;C, T&gt;::const_iterator</classname> is
2951      <code>const C*</code>.
2952   </para>
2953
2954
2955   <para>
2956      <emphasis>28.4.3 [algorithms.parallel.exec]</emphasis>
2957      Threads of execution created by <classname>std::thread</classname>
2958      provide concurrent forward progress guarantees, so threads of execution
2959      implicitly created by the library will provide parallel forward
2960      progress guarantees.
2961   </para>
2962
2963   <para>
2964      <emphasis>29.4.1 [cfenv.syn]</emphasis>
2965      The effects of the <filename>&lt;cfenv&gt;</filename> functions
2966      depends on whether the <code>FENV_ACCESS</code> pragma is supported,
2967      and on the C library that provides the header.
2968   </para>
2969
2970   <para>
2971      <emphasis>29.6.9 [c.math.rand]</emphasis>
2972      Whether the <function>rand</function> function may introduce data
2973      races depends on the target C library that provides the function.
2974   </para>
2975
2976   <para>
2977      <emphasis>29.9.5 [sf.cmath]</emphasis>
2978      The effect of calling the mathematical special functions with large
2979      inputs should be documented here.
2980   </para>
2981
2982   <para>
2983      <emphasis>30.10.2.1 [fs.conform.9945]</emphasis>
2984      The behavior of the filesystem library implementation will depend on
2985      the target operating system. Some features will not be supported
2986      on some targets. Symbolic links and file permissions
2987      are not supported on Windows.
2988   </para>
2989
2990   <para>
2991      <emphasis>30.10.5 [fs.filesystem.syn]</emphasis>
2992      The clock used for file times is an unspecified type
2993      with a signed 64-bit representation, capable of representing
2994      timestamps with nanosecond resolution. The clock's epoch is
2995      unspecified, but is not the same as the system clock's epoch.
2996   </para>
2997
2998   <para>
2999      <emphasis>30.10.7.1 [fs.path.generic]</emphasis>
3000      dot-dot in the root-directory refers to the root-directory itself.
3001      On Windows, a drive specifier such as <code>"C:"</code> or
3002      <code>"z:"</code> is treated as a root-name. On Cygwin, a path
3003      that begins with two successive directory separators is a
3004      root-name. Otherwise (for POSIX-like systems other than Cygwin),
3005      the implementation-defined root-name is an unspecified string
3006      which does not appear in any pathnames.
3007   </para>
3008
3009   <para>
3010      <emphasis>30.10.10.1 [fs.enum.path.format]</emphasis>
3011      The character sequence is always interpreted in the native pathname
3012      format.
3013   </para>
3014
3015   <para>
3016      <emphasis>30.10.15.4 [fs.op.file_size]</emphasis>
3017      If <code>!is_regular_file(p)</code>, an error is reported.
3018   </para>
3019
3020    <para>
3021      <emphasis>30.10.15.32 [fs.op.rename]</emphasis>
3022      On Windows, <code>filesystem::rename</code>
3023      is implemented by calling <code>MoveFileExW</code> and so
3024      does not meet the requirements of POSIX <code>rename</code>
3025      when one or both of the paths resolves to an existing directory.
3026      Specifically, it is not possible to rename a directory to replace another
3027      directory (POSIX requires that to work if the directory being
3028      replaced is empty).
3029    </para>
3030
3031</section>
3032
3033</section>
3034