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