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