1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
2 xml:id="status.iso.201z" xreflabel="Status C++ 201z">
3 <?dbhtml filename="status_iso_cxx201z.html"?>
5 <info><title>C++ 201z</title>
7 <keyword>ISO C++</keyword>
8 <keyword>201z</keyword>
13 In this implementation the <literal>-std=gnu++1z</literal> or
14 <literal>-std=c++1z</literal> flag must be used to enable language
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.
23 This section describes the C++1z and library TS support in mainline GCC SVN,
24 not in any particular release.
28 The following table lists new library features that have been accepted into
29 the C++1z working draft. The "Proposal" column provides a link to the
30 ISO C++ committee proposal that describes the feature, while the "Status"
31 column indicates the first version of GCC that contains an implementation of
32 this feature (if it has been implemented).
33 The "SD-6 Feature Test" column shows the corresponding macro or header from
34 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6:
35 Feature-testing recommendations for C++</link>.
38 <table frame="all" xml:id="table.cxx1z_status">
39 <title>C++ 201z Implementation Status</title>
41 <tgroup cols="4" align="left" colsep="0" rowsep="1">
42 <colspec colname="c1"/>
43 <colspec colname="c2"/>
44 <colspec colname="c3"/>
45 <colspec colname="c4"/>
48 <entry>Library Feature</entry>
49 <entry>Proposal</entry>
51 <entry>SD-6 Feature Test</entry>
58 <?dbhtml bgcolor="#C8B0B0" ?>
60 <code>constexpr std::hardware_{constructive,destructive}_interference_size</code>
63 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html">
67 <entry align="center"> No </entry>
68 <entry> <code>__cpp_lib_hardware_interference_size >= 201603</code> </entry>
72 <entry> Core Issue 1776: Replacement of class objects containing reference members</entry>
74 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0137r1.html">
78 <entry align="center"> 7 </entry>
79 <entry> <code>__cpp_lib_launder >= 201606</code> </entry>
83 <entry>Wording for <code>std::uncaught_exceptions</code></entry>
85 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf">
89 <entry align="center">6.1</entry>
90 <entry><code>__cpp_lib_uncaught_exceptions >= 201411</code></entry>
94 <entry> Variant: a type-safe union for C++17 </entry>
96 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html">
100 <entry align="center"> 7 </entry>
101 <entry> <code>__has_include(<variant>)</code> </entry>
105 <entry> Library Fundamentals V1 TS Components: <code>optional</code> </entry>
107 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
111 <entry align="center"> 7 </entry>
112 <entry> <code>__has_include(<optional>)</code> </entry>
116 <entry> Library Fundamentals V1 TS Components: <code>any</code> </entry>
118 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
122 <entry align="center"> 7 </entry>
123 <entry> <code>__has_include(<any>)</code> </entry>
127 <entry> Library Fundamentals V1 TS Components: <code>string_view</code> </entry>
129 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
133 <entry align="center"> 7 </entry>
134 <entry> <code>__has_include(<string_view>)</code> </entry>
138 <?dbhtml bgcolor="#C8B0B0" ?>
139 <entry> Library Fundamentals V1 TS Components: <code>memory_resource</code> </entry>
141 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
145 <entry align="center"> No </entry>
146 <entry> <code>__has_include(<memory_resource>)</code> </entry>
150 <entry> Library Fundamentals V1 TS Components: <code>apply</code> </entry>
152 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
156 <entry align="center"> 7 </entry>
157 <entry> <code>__cpp_lib_apply >= 201603</code> </entry>
161 <entry> Library Fundamentals V1 TS Components: <code>shared_ptr<T[]></code> </entry>
163 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
167 <entry align="center"> 7 </entry>
168 <entry> <code>__cpp_lib_shared_ptr_arrays >= 201603</code> </entry>
172 <entry> Library Fundamentals V1 TS Components: Searchers </entry>
174 <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 <entry align="center"> 7 </entry>
179 <entry> <code>__cpp_lib_boyer_moore_searcher >= 201603</code> </entry>
183 <entry> Library Fundamentals V1 TS Components: Sampling </entry>
185 <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 <entry align="center"> 7 </entry>
190 <entry> <code>__cpp_lib_sample >= 201603</code> </entry>
194 <entry> Constant View: A proposal for a <code>std::as_const</code> helper function template </entry>
196 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="">
200 <entry align="center"> 7 </entry>
201 <entry><code> __cpp_lib_as_const >= 201510 </code></entry>
205 <entry> Improving pair and tuple </entry>
207 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387">
211 <entry align="center"> 6.1 </entry>
216 <entry> <code>make_from_tuple</code>: apply for construction </entry>
218 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0209r2.pdf">
222 <entry align="center"> 7 </entry>
223 <entry><code> __cpp_lib_make_from_tuple >= 201606 </code></entry>
227 <?dbhtml bgcolor="#C8B0B0" ?>
229 Removing <code>auto_ptr</code>, <code>random_shuffle()</code>,
230 And Old <code><functional></code> Stuff
233 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm">
237 <entry align="center">No (kept for backwards compatibility)</entry>
242 <?dbhtml bgcolor="#C8B0B0" ?>
243 <entry> Deprecating Vestigial Library Parts in C++17 </entry>
245 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html">
249 <entry align="center"> No </entry>
254 <entry> Making <code>std::owner_less</code> more flexible </entry>
256 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0074r0.html">
260 <entry align="center"> 7 </entry>
261 <entry><code> __cpp_lib_transparent_operators >= 201510 </code></entry>
265 <entry> <code>std::addressof</code> should be constexpr </entry>
267 <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">
271 <entry align="center"> 7 </entry>
272 <entry><code> __cpp_lib_addressof_constexpr >= 201603 </code></entry>
276 <entry> Safe conversions in <code>unique_ptr<T[]></code> </entry>
278 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089.pdf">
282 <entry align="center"> 6 </entry>
287 <entry> LWG 2228: Missing SFINAE rule in unique_ptr templated assignment </entry>
289 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366.html">
293 <entry align="center"> 6 </entry>
298 <entry> Re-enabling <code>shared_from_this</code></entry>
300 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html">
304 <entry align="center"> 7 </entry>
305 <entry><code>__cpp_lib_enable_shared_from_this >= 201603</code></entry>
309 <entry> A proposal to add <code>invoke</code> function template </entry>
311 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html">
315 <entry align="center"> 6.1 </entry>
316 <entry><code> __cpp_lib_invoke >= 201411 </code></entry>
320 <entry>TriviallyCopyable <code>reference_wrapper</code> </entry>
322 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html">
326 <entry align="center"> 5.1 </entry>
331 <entry> Adopt <code>not_fn</code> from Library Fundamentals 2 for C++17 </entry>
333 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0005r4.html">
337 <entry align="center"> 7 </entry>
338 <entry><code>__cpp_lib_not_fn >= 201603</code></entry>
342 <entry> Fixes for <code>not_fn</code> </entry>
344 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0358r1.html">
348 <entry align="center"> 7 </entry>
353 <entry> Fixing a design mistake in the searchers interface in Library Fundamentals </entry>
355 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf">
359 <entry align="center"> 7 </entry>
364 <entry> Extending memory management tools </entry>
366 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html">
370 <entry align="center"> 7 </entry>
371 <entry><code> </code></entry>
375 <entry> <code>shared_ptr::weak_type</code></entry>
377 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html">
381 <entry align="center"> 7 </entry>
382 <entry><code> __cpp_lib_shared_ptr_weak_type >= 201606</code></entry>
386 <entry>Transformation Trait Alias <code>void_t</code></entry>
388 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf">
392 <entry align="center">6.1</entry>
393 <entry><code> __cpp_lib_void_t >= 201411</code></entry>
397 <entry> Wording for <code>bool_constant</code>, revision 1 </entry>
399 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389.html">
403 <entry align="center">6.1</entry>
404 <entry><code> __cpp_lib_bool_constant >= 201505</code></entry>
408 <entry> Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17</entry>
410 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html">
414 <entry align="center"> 7 </entry>
415 <entry><code> __cpp_lib_type_trait_variable_templates >= 201510 </code></entry>
419 <entry> Logical Operator Type Traits</entry>
421 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0013r1.html">
425 <entry align="center"> 6.1 </entry>
426 <entry><code> __cpp_lib_logical_traits >= 201510 </code></entry>
430 <entry> Adding [nothrow-]swappable traits </entry>
432 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html">
436 <entry align="center"> 7 (<code>__is_swappable</code> available since 6.1)</entry>
437 <entry><code> __cpp_lib_is_swappable >= 201603 </code></entry>
441 <entry> <code>is_callable</code>, the missing INVOKE related trait</entry>
443 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0077r2.html">
447 <entry align="center"> 7 </entry>
448 <entry><code> __cpp_lib_is_callable >= 201603 </code></entry>
452 <entry> has_unique_object_representations </entry>
454 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html">
458 <entry align="center"> 7 </entry>
459 <entry><code> __cpp_lib_has_unique_object_representations >= 201606 </code></entry>
463 <entry> Polishing <code><chrono></code> </entry>
465 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html">
469 <entry align="center"> 7 </entry>
470 <entry><code> __cpp_lib_chrono >= 201510 </code></entry>
474 <entry> Adding more constexpr to <code><chrono></code> </entry>
476 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0505r0.html">
480 <entry align="center"> 7 </entry>
481 <entry><code> ??? </code></entry>
485 <?dbhtml bgcolor="#B0B0B0" ?>
486 <entry> Constexpr for <code>std::char_traits</code> </entry>
488 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0426r1.html">
492 <entry align="center"> 7 (partial) </entry>
493 <entry><code> ??? </code></entry>
497 <entry> Integrating <code>std::string_view</code> and <code>std::string</code> </entry>
499 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf">
503 <entry align="center"> 7 </entry>
504 <entry><code> </code></entry>
508 <entry> Give 'std::string' a non-const '.data()' member function </entry>
510 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0272r1.html">
514 <entry align="center"> 7 </entry>
515 <entry><code> </code></entry>
519 <entry>Cleaning-up noexcept in the Library</entry>
521 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf">
525 <entry align="center">6.1</entry>
526 <entry><code> __cpp_lib_allocator_traits_is_always_equal >= 201411 </code></entry>
530 <entry>Contiguous Iterators </entry>
532 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.html">
536 <entry align="center">N/A</entry>
541 <entry> Minimal incomplete type support for standard containers </entry>
543 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html">
547 <entry align="center"> 6.2 (3.0)</entry>
548 <entry><code> __cpp_lib_incomplete_container_elements >= 201505 </code>
549 (the feature was always supported, but the macro was not defined until GCC 6.2)
554 <entry> Emplace return type </entry>
556 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf">
560 <entry align="center"> 7 </entry>
561 <entry><code> ??? </code></entry>
565 <entry>Improved insertion interface for unique-key maps</entry>
567 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html">
571 <entry align="center"> 6.1 </entry>
572 <entry><code> __cpp_lib_map_try_emplace >= 201411</code>,
573 <code> __cpp_lib_unordered_map_try_emplace >= 201411</code>
578 <entry> Splicing Maps and Sets </entry>
580 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf">
584 <entry align="center"> 7 </entry>
585 <entry><code> __cpp_lib_node_extract >= 201606 </code></entry>
589 <entry>Non-member <code>size()</code> and more</entry>
591 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf">
595 <entry align="center"> 6.1 </entry>
596 <entry><code> __cpp_lib_nonmember_container_access >= 201411 </code></entry>
600 <entry> A Proposal to Add Constexpr Modifiers to <code>reverse_iterator</code>, <code>move_iterator</code>, <code>array</code> and Range Access </entry>
602 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html">
606 <entry align="center"> 7 </entry>
607 <entry><code> __cpp_lib_array_constexpr >= 201603 </code></entry>
611 <?dbhtml bgcolor="#C8B0B0" ?>
612 <entry> The Parallelism TS Should be Standardized </entry>
614 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html">
618 <entry align="center"> No </entry>
619 <entry><code> __has_include(<execution>) </code>,
620 <code> __cpp_lib_parallel_algorithm >= 201603 </code></entry>
624 <entry> An algorithm to "clamp" a value between a pair of boundary values </entry>
626 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html">
630 <entry align="center"> 7 </entry>
631 <entry><code> __cpp_lib_clamp >= 201603 </code></entry>
635 <entry> Adopt Selected Library Fundamentals V2 Components for C++17 </entry>
637 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0295r0.pdf">
641 <entry align="center"> 7 </entry>
642 <entry><code> __cpp_lib_gcd >= 201606 </code>,
643 <code> __cpp_lib_lcm >= 201606 </code>
648 <entry> Proposal to Introduce a 3-Argument Overload to <code>std::hypot</code> </entry>
650 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0030r1.pdf">
654 <entry align="center"> 7 </entry>
655 <entry><code> __cpp_lib_hypot >= 201603 </code></entry>
659 <entry> Mathematical Special Functions for C++17 </entry>
661 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf">
665 <entry align="center"> 7 (6.1) </entry>
666 <entry><code> __cpp_lib_math_special_functions >= 201603 </code>
667 (for GCC 6 or pre-C++17 define
668 <code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code> to a non-zero value
669 and test for <code>__STDCPP_MATH_SPEC_FUNCS__ >= 201003L</code>)
674 <?dbhtml bgcolor="#C8B0B0" ?>
675 <entry>Adopt the File System TS for C++17 </entry>
677 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html">
681 <entry align="center"> No </entry>
682 <entry><code> __has_include(<filesystem>) </code>,
683 <code> __cpp_lib_filesystem >= 201603 </code></entry>
687 <?dbhtml bgcolor="#C8B0B0" ?>
688 <entry> Relative Paths for Filesystem</entry>
690 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html">
694 <entry align="center"> No </entry>
699 <?dbhtml bgcolor="#C8B0B0" ?>
700 <entry> Adapting string_view by filesystem paths </entry>
702 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf">
706 <entry align="center"> No </entry>
711 <entry> constexpr <code>atomic<T>::is_always_lock_free</code> </entry>
713 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html">
717 <entry align="center"> 7 </entry>
718 <entry><code> __cpp_lib_atomic_is_always_lock_free >= 201603 </code></entry>
722 <entry>A proposal to add <code>shared_mutex</code> (untimed) (Revision 4)</entry>
724 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html">
728 <entry align="center"> 6.1 </entry>
729 <entry><code> __cpp_lib_shared_mutex >= 201505 </code></entry>
733 <entry> Variadic <code>lock_guard</code> </entry>
735 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0156r2.html">
739 <entry align="center"> 7 </entry>
740 <entry><code> __cpp_lib_scoped_lock >= 201703 </code></entry>
744 <entry> byte type definition </entry>
746 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0298r3.pdf">
750 <entry align="center"> 7 </entry>
751 <entry><code> ??? </code></entry>
755 <?dbhtml bgcolor="#C8B0B0" ?>
756 <entry> Elementary string conversions </entry>
758 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html">
762 <entry align="center"> No </entry>
763 <entry><code> ??? </code></entry>
772 <table frame="all" xml:id="table.cxx1z_ts_status">
773 <title>C++ Technical Specifications Implementation Status</title>
775 <tgroup cols="4" align="left" colsep="0" rowsep="1">
776 <colspec colname="c1"/>
777 <colspec colname="c2"/>
778 <colspec colname="c3"/>
779 <colspec colname="c4"/>
784 <entry>Status</entry>
785 <entry>Comments</entry>
793 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4076.html">
797 <entry>A generalized callable negator</entry>
799 <entry>Library Fundamentals 2 TS</entry>
804 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4273.htm">
808 <entry>Uniform Container Erasure</entry>
810 <entry>Library Fundamentals 2 TS</entry>
815 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4061.pdf">
819 <entry>Greatest Common Divisor and Least Common Multiple</entry>
821 <entry>Library Fundamentals 2 TS</entry>
826 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4066.htm">
830 <entry>Delimited iterators</entry>
832 <entry>Library Fundamentals 2 TS</entry>
837 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4282.pdf">
841 <entry>The World's Dumbest Smart Pointer</entry>
843 <entry>Library Fundamentals 2 TS</entry>
849 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4388.html">
853 <entry>Const-Propagating Wrapper</entry>
855 <entry>Library Fundamentals 2 TS</entry>
860 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4391.html">
864 <entry> <code>make_array</code>, revision 4 </entry>
866 <entry>Library Fundamentals 2 TS</entry>
871 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf">
875 <entry> Support for the C++ Detection Idiom, V2 </entry>
877 <entry>Library Fundamentals 2 TS</entry>
881 <?dbhtml bgcolor="#C8B0B0" ?>
883 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4519.pdf">
887 <entry> Source-Code Information Capture </entry>
889 <entry>Library Fundamentals 2 TS</entry>
893 <?dbhtml bgcolor="#C8B0B0" ?>
895 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4521.html">
899 <entry> Merge Fundamentals V1 into V2 </entry>
901 <entry>Library Fundamentals 2 TS</entry>
906 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html">
910 <entry>Logical Operator Type Traits (revision 1)</entry>
912 <entry>Library Fundamentals 2 TS</entry>
920 <section xml:id="iso.2017.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
922 <para>For behaviour which is also specified by previous standards,
923 see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
924 Specific Behavior</link> and <link linkend="iso.2011.specific">C++
925 2011 Implementation Specific Behavior</link>. This section only
926 documents behaviour which is new in the 2017 standard.
930 <emphasis>20.6.5 [optional.bad_optional_access]</emphasis>
931 <code>what()</code> returns <literal>"bad optional access"</literal>.
935 <emphasis>20.7.2 [variant.variant]</emphasis>
936 Whether <classname>variant</classname> supports over-aligned types
937 should be documented here.
941 <emphasis>20.7.10 [variant.bad.access]</emphasis>
942 <code>what()</code> returns <literal>"Unexpected index"</literal>.
946 <emphasis>20.12.5.2 [memory.resource.pool.options]</emphasis>
947 The limits for maximum number of blocks and largest allocation size
948 supported by <classname>pool_options</classname> should be documented
953 <emphasis>20.12.6.1 [memory.resource.monotonic.buffer.ctor]</emphasis>
954 The default <code>next_buffer_size</code> and growth factor should
959 <emphasis>20.15.4.3 [meta.unary.prop]</emphasis>
960 The predicate condition for
961 <code>has_unique_object_representations</code> is true for all scalar
962 types except floating point types.
966 <emphasis>20.19.3 [execpol.type],
967 25.2.3 [algorithms.parallel.exec]</emphasis>
968 There are no implementation-defined execution policies.
972 <emphasis>22.4.2 [string.view.template]</emphasis>
973 <classname>basic_string_view<C, T>::iterator</classname> is
975 <classname>basic_string_view<C, T>::const_iterator</classname> is
976 <code>const C*</code>.
981 <emphasis>25.2.3 [algorithms.parallel.exec]</emphasis>
982 Threads of execution created by <classname>std::thread</classname>
983 provide concurrent forward progress guarantees, so threads of execution
984 implicitly created by the library will provide parallel forward
989 <emphasis>26.4.1 [cfenv.syn]</emphasis>
990 The effects of the <filename><cfenv></filename> functions
991 depends on whether the <code>FENV_ACCESS</code> pragma is supported,
992 and on the C library that provides the header.
996 <emphasis>26.6.9 [c.math.rand]</emphasis>
997 Whether the <function>rand</function> function may introduce data
998 races depends on the target C library that provides the function.
1002 <emphasis>26.9.5 [sf.cmath]</emphasis>
1003 The effect of calling the mathematical special functions with large
1004 inputs should be documented here.
1008 <emphasis>27.10.2.1 [fs.conform.9945]</emphasis>
1009 The behavior of the filesystem library implementation will depend on
1010 the target operating system. Some features will not be not supported
1015 <emphasis>27.10.6 [fs.filesystem.syn]</emphasis>
1016 The clock used for file times is
1017 <classname>std::chrono::system_clock</classname>.
1021 <emphasis>27.10.8 [path.generic]</emphasis>
1022 dot-dot in the root-directory refers to the root-directory itself.