mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 03:14:08 +08:00
Update C++17 library implementation status table
* doc/xml/manual/status_cxx2017.xml: Update C++17 status table. * doc/html/manual/status.html: Regenerate. From-SVN: r239124
This commit is contained in:
parent
8d8e740c1c
commit
246c618e71
@ -1,5 +1,8 @@
|
||||
2016-08-04 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
|
||||
* doc/html/manual/status.html: Regenerate.
|
||||
|
||||
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
|
||||
effective target not dg-options. Move check for feature-test macro to:
|
||||
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
|
||||
|
@ -470,82 +470,255 @@ options. The pre-defined symbol
|
||||
<code class="constant">__cplusplus</code> is used to check for the
|
||||
presence of the required flag.
|
||||
</p><p>
|
||||
This page describes the C++1z and library TS support in mainline GCC SVN,
|
||||
This section describes the C++1z and library TS support in mainline GCC SVN,
|
||||
not in any particular release.
|
||||
</p><div class="table"><a id="table.cxx1z_status"></a><p class="title"><strong>Table 1.5. C++ 201z Implementation Status</strong></p><div class="table-contents"><table summary="C++ 201z Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
||||
</p><p>
|
||||
The following table lists new library features that have been accepted into
|
||||
the C++1z working draft. The "Proposal" column provides a link to the
|
||||
ISO C++ committee proposal that describes the feature, while the "Status"
|
||||
column indicates the first version of GCC that contains an implementation of
|
||||
this feature (if it has been implemented).
|
||||
The "SD-6 Feature Test" column shows the corresponding macro or header from
|
||||
<a class="link" href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target="_top">SD-6:
|
||||
Feature-testing recommendations for C++</a>.
|
||||
</p><div class="table"><a id="table.cxx1z_status"></a><p class="title"><strong>Table 1.5. C++ 201z Implementation Status</strong></p><div class="table-contents"><table summary="C++ 201z Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Library Feature</th><th align="left">Proposal</th><th align="left">Status</th><th align="left">SD-6 Feature Test</th></tr></thead><tbody><tr bgcolor="#C8B0B0"><td align="left">
|
||||
<code class="code">constexpr std::hardware_{constructive,destructive}_interference_size</code>
|
||||
</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html" target="_top">
|
||||
P0154R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> <code class="code">__cpp_lib_hardware_interference_size >= 201603</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Core Issue 1776: Replacement of class objects containing reference members</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0137r1.html" target="_top">
|
||||
P0137R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> <code class="code">__cpp_lib_launder >= 201606</code> </td></tr><tr><td align="left">Wording for <code class="code">std::uncaught_exceptions</code></td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf" target="_top">
|
||||
N4259
|
||||
</a>
|
||||
</td><td align="left">Wording for <code class="code">std::uncaught_exceptions</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
|
||||
</td><td align="center">6.1</td><td align="left"><code class="code">__cpp_lib_uncaught_exceptions >= 201411</code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Variant: a type-safe union for C++17 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html" target="_top">
|
||||
P0088R3
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> <code class="code">__has_include(<variant>)</code> </td></tr><tr><td align="left"> Library Fundamentals V1 TS Components: <code class="code">optional</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target="_top">
|
||||
P0220R1
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"> <code class="code">__has_include(<optional>)</code> </td></tr><tr><td align="left"> Library Fundamentals V1 TS Components: <code class="code">any</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target="_top">
|
||||
P0220R1
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"> <code class="code">__has_include(<any>)</code> </td></tr><tr><td align="left"> Library Fundamentals V1 TS Components: <code class="code">string_view</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target="_top">
|
||||
P0220R1
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"> <code class="code">__has_include(<string_view>)</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Library Fundamentals V1 TS Components: <code class="code">memory_resource</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target="_top">
|
||||
P0220R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> <code class="code">__has_include(<memory_resource>)</code> </td></tr><tr><td align="left"> Constant View: A proposal for a <code class="code">std::as_const</code> helper function template </td><td align="left">
|
||||
<a class="link" href="" target="_top">
|
||||
P0007R1
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_as_const >= 201510 </code></td></tr><tr><td align="left"> Improving pair and tuple </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387" target="_top">
|
||||
N4387
|
||||
</a>
|
||||
</td><td align="center"> 6.1 </td><td align="left"> N/A </td></tr><tr bgcolor="#C8B0B0"><td align="left"> make_from_tuple: apply for construction </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0209r2.pdf" target="_top">
|
||||
P0209R2
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_make_from_tuple >= 201606 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left">
|
||||
Removing <code class="code">auto_ptr</code>, <code class="code">random_shuffle()</code>,
|
||||
And Old <code class="code"><functional></code> Stuff
|
||||
</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm" target="_top">
|
||||
N4190
|
||||
</a>
|
||||
</td><td align="left">
|
||||
Removing <code class="code">auto_ptr</code>, <code class="code">random_shuffle()</code>,
|
||||
And Old <code class="code"><functional></code> Stuff
|
||||
</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.htm" target="_top">
|
||||
N4284
|
||||
</td><td align="center">No (kept for backwards compatibility)</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Deprecating Vestigial Library Parts in C++17 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html" target="_top">
|
||||
P0174R2
|
||||
</a>
|
||||
</td><td align="left">Contiguous Iterators </td><td align="left">Y</td><td align="left">No code changes required</td></tr><tr><td align="left">
|
||||
</td><td align="center"> No </td><td align="left"> </td></tr><tr><td align="left"> Making <code class="code">std::owner_less</code> more flexible </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0074r0.html" target="_top">
|
||||
P0074R0
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_transparent_operators >= 201510 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">std::addressof</code> should be constexpr </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0304r0.html#2296" target="_top">
|
||||
LWG2296
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_addressof_constexpr >= 201603 </code></td></tr><tr><td align="left"> Safe conversions in <code class="code">unique_ptr<T[]></code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089.pdf" target="_top">
|
||||
N4089
|
||||
N4089
|
||||
</a>
|
||||
</td><td align="left">Safe conversions in <code class="code">unique_ptr<T[]></code> </td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html" target="_top">
|
||||
N4277
|
||||
</a>
|
||||
</td><td align="left">TriviallyCopyable <code class="code">reference_wrapper</code> </td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf" target="_top">
|
||||
N4258
|
||||
</a>
|
||||
</td><td align="left">Cleaning-up noexcept in the Library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html" target="_top">
|
||||
N4279
|
||||
</a>
|
||||
</td><td align="left">Improved insertion interface for unique-key maps</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf" target="_top">
|
||||
N3911
|
||||
</a>
|
||||
</td><td align="left">Transformation Trait Alias <code class="code">void_t</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html" target="_top">
|
||||
N4169
|
||||
</a>
|
||||
</td><td align="left">A proposal to add invoke function template</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf" target="_top">
|
||||
N4280
|
||||
</a>
|
||||
</td><td align="left">Non-member size() and more</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
</td><td align="center"> 5 ? </td><td align="left"> </td></tr><tr><td align="left"> LWG 2228: Missing SFINAE rule in unique_ptr templated assignment </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366.html" target="_top">
|
||||
N4366
|
||||
</a>
|
||||
</td><td align="left">
|
||||
LWG 2228: Missing SFINAE rule in unique_ptr templated assignment
|
||||
</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html" target="_top">
|
||||
N4387
|
||||
</td><td align="center"> 5 ? </td><td align="left"> </td></tr><tr><td align="left"> Re-enabling <code class="code">shared_from_this</code></td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html" target="_top">
|
||||
P0033R1
|
||||
</a>
|
||||
</td><td align="left"> Improving pair and tuple, revision 3 </td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
</td><td align="center"> 6.1 </td><td align="left"><code class="code">__cpp_lib_enable_shared_from_this >= 201603</code></td></tr><tr><td align="left"> A proposal to add <code class="code">invoke</code> function template </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html" target="_top">
|
||||
N4169
|
||||
</a>
|
||||
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_invoke >= 201411 </code></td></tr><tr><td align="left">TriviallyCopyable <code class="code">reference_wrapper</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html" target="_top">
|
||||
N4277
|
||||
</a>
|
||||
</td><td align="center"> 5.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Adopt <code class="code">not_fn</code> from Library Fundamentals 2 for C++17 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0005r4.html" target="_top">
|
||||
P0005R4
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code">__cpp_lib_not_fn >= 201603</code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Fixes for <code class="code">not_fn</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0358r1.html" target="_top">
|
||||
P0358R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Fixing a design mistake in the searchers interface in Library Fundamentals </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf" target="_top">
|
||||
P0253R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending memory management tools </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" target="_top">
|
||||
P0040R3
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> </code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" target="_top">
|
||||
P0163R0
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_shared_ptr_weak_type >= 201606</code></td></tr><tr><td align="left">Transformation Trait Alias <code class="code">void_t</code></td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf" target="_top">
|
||||
N3911
|
||||
</a>
|
||||
</td><td align="center">6.1</td><td align="left"><code class="code"> __cpp_lib_void_t >= 201411</code></td></tr><tr><td align="left"> Wording for <code class="code">bool_constant</code>, revision 1 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389.html" target="_top">
|
||||
N4389
|
||||
</a>
|
||||
</td><td align="left"> Wording for bool_constant, revision 1 </td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
</td><td align="center">6.1</td><td align="left"><code class="code"> __cpp_lib_bool_constant >= 201505</code></td></tr><tr><td align="left"> Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html" target="_top">
|
||||
P0006R0
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_type_trait_variable_templates >= 201510 </code></td></tr><tr><td align="left"> Logical Operator Type Traits</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0013r1.html" target="_top">
|
||||
P0013R1
|
||||
</a>
|
||||
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_logical_traits >= 201510 </code></td></tr><tr><td align="left"> Adding [nothrow-]swappable traits </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html" target="_top">
|
||||
P0185R1
|
||||
</a>
|
||||
</td><td align="center"> 7 (<code class="code">__is_swappable</code> available since 6.1)</td><td align="left"><code class="code"> __cpp_lib_is_swappable >= 201603 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">is_callable</code>, the missing INVOKE related trait</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0077r2.html" target="_top">
|
||||
P0077R2
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_is_callable >= 201603 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> has_unique_object_representations </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html" target="_top">
|
||||
P0258R2
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_has_unique_object_representations >= 201606 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Ordered by default </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0181r1.html" target="_top">
|
||||
P0181R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_default_order >= 201606</code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Polishing <code class="code"><chrono></code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html" target="_top">
|
||||
P0092R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_chrono >= 201510 </code></td></tr><tr><td align="left"> Integrating <code class="code">std::string_view</code> and <code class="code">std::string</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf" target="_top">
|
||||
P0254R2
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> </code></td></tr><tr><td align="left"> Give 'std::string' a non-const '.data()' member function </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0272r1.html" target="_top">
|
||||
P0272R1
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> </code></td></tr><tr><td align="left">Cleaning-up noexcept in the Library</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf" target="_top">
|
||||
N4258
|
||||
</a>
|
||||
</td><td align="center">6.1</td><td align="left"><code class="code"> __cpp_lib_allocator_traits_is_always_equal >= 201411 </code></td></tr><tr><td align="left">Contiguous Iterators </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.htm" target="_top">
|
||||
N4284
|
||||
</a>
|
||||
</td><td align="center">N/A</td><td align="left"> </td></tr><tr><td align="left"> Minimal incomplete type support for standard containers </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html" target="_top">
|
||||
N4510
|
||||
</a>
|
||||
</td><td align="center"> 7 (3.0)</td><td align="left"><code class="code"> __cpp_lib_incomplete_container_elements >= 201505 </code>
|
||||
(the feature was always supported, but the macro was not defined until GCC 7)
|
||||
</td></tr><tr bgcolor="#C8B0B0"><td align="left"> Emplace return type </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf" target="_top">
|
||||
P0084R2
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> </td></tr><tr><td align="left">Improved insertion interface for unique-key maps</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html" target="_top">
|
||||
N4279
|
||||
</a>
|
||||
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_map_try_emplace >= 201411</code>,
|
||||
<code class="code"> __cpp_lib_unordered_map_try_emplace >= 201411</code>
|
||||
</td></tr><tr bgcolor="#C8B0B0"><td align="left"> Splicing Maps and Sets </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf" target="_top">
|
||||
P0083R3
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_node_extract >= 201606 </code></td></tr><tr><td align="left">Non-member <code class="code">size()</code> and more</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf" target="_top">
|
||||
N4280
|
||||
</a>
|
||||
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_nonmember_container_access >= 201411 </code></td></tr><tr><td align="left"> A Proposal to Add Constexpr Modifiers to <code class="code">reverse_iterator</code>, <code class="code">move_iterator</code>, <code class="code">array</code> and Range Access </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html" target="_top">
|
||||
P0031R0
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_array_constexpr >= 201603 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> The Parallelism TS Should be Standardized </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html" target="_top">
|
||||
P0024R2
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __has_include(<execution>) </code>,
|
||||
<code class="code"> __cpp_lib_parallel_algorithm >= 201603 </code></td></tr><tr><td align="left"> An algorithm to "clamp" a value between a pair of boundary values </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html" target="_top">
|
||||
P0025R0
|
||||
</a>
|
||||
</td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_clamp >= 201603 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Adopt Selected Library Fundamentals V2 Components for C++17 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0295r0.pdf" target="_top">
|
||||
P0295R0
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_gcd >= 201606 </code>,
|
||||
<code class="code"> __cpp_lib_lcm >= 201606 </code>
|
||||
</td></tr><tr bgcolor="#C8B0B0"><td align="left"> Proposal to Introduce a 3-Argument Overload to <code class="code">std::hypot</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0030r1.pdf" target="_top">
|
||||
P0030R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_hypot >= 201603 </code></td></tr><tr><td align="left"> Mathematical Special Functions for C++17 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf" target="_top">
|
||||
P0226R1
|
||||
</a>
|
||||
</td><td align="center"> 7 (6.1) </td><td align="left"><code class="code"> __cpp_lib_math_special_functions >= 201603 </code>
|
||||
(for GCC 6 or pre-C++17 define
|
||||
<code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code> to a non-zero value
|
||||
and test for <code class="code">__STDCPP_MATH_SPEC_FUNCS__ >= 201003L</code>)
|
||||
</td></tr><tr bgcolor="#C8B0B0"><td align="left">Adopt the File System TS for C++17 </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html" target="_top">
|
||||
P0218R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __has_include(<filesystem>) </code>,
|
||||
<code class="code"> __cpp_lib_filesystem >= 201603 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Relative Paths for Filesystem</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html" target="_top">
|
||||
P0219R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Adapting string_view by filesystem paths </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf" target="_top">
|
||||
P0392R0
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> constexpr <code class="code">atomic<T>::is_always_lock_free</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html" target="_top">
|
||||
P0152R1
|
||||
</a>
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_atomic_is_always_lock_free >= 201603 </code></td></tr><tr><td align="left">A proposal to add <code class="code">shared_mutex</code> (untimed) (Revision 4)</td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html" target="_top">
|
||||
N4508
|
||||
</a>
|
||||
</td><td align="left">A proposal to add shared_mutex (untimed) (Revision 4)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html" target="_top">
|
||||
N4510
|
||||
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_shared_mutex >= 201505 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Variadic <code class="code">lock_guard</code> </td><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0156r0.html" target="_top">
|
||||
P0156R0
|
||||
</a>
|
||||
</td><td align="left">
|
||||
Minimal incomplete type support for standard containers, revision 4
|
||||
</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
|
||||
<a class="link" href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html" target="_top">
|
||||
P0013R1
|
||||
</a>
|
||||
</td><td align="left">
|
||||
Logical Operator Type Traits (revision 1)
|
||||
</td><td align="left">Y</td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="table.cxx1z_ts_status"></a><p class="title"><strong>Table 1.6. C++ Technical Specifications Implementation Status</strong></p><div class="table-contents"><table summary="C++ Technical Specifications Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
||||
</td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_lock_guard_variadic >= 201510 </code></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="table.cxx1z_ts_status"></a><p class="title"><strong>Table 1.6. C++ Technical Specifications Implementation Status</strong></p><div class="table-contents"><table summary="C++ Technical Specifications Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
||||
<a class="link" href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4076.html" target="_top">
|
||||
N4076
|
||||
</a>
|
||||
|
@ -20,10 +20,21 @@ presence of the required flag.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This page describes the C++1z and library TS support in mainline GCC SVN,
|
||||
This section describes the C++1z and library TS support in mainline GCC SVN,
|
||||
not in any particular release.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The following table lists new library features that have been accepted into
|
||||
the C++1z working draft. The "Proposal" column provides a link to the
|
||||
ISO C++ committee proposal that describes the feature, while the "Status"
|
||||
column indicates the first version of GCC that contains an implementation of
|
||||
this feature (if it has been implemented).
|
||||
The "SD-6 Feature Test" column shows the corresponding macro or header from
|
||||
<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:
|
||||
Feature-testing recommendations for C++</link>.
|
||||
</para>
|
||||
|
||||
<table frame="all" xml:id="table.cxx1z_status">
|
||||
<title>C++ 201z Implementation Status</title>
|
||||
|
||||
@ -34,199 +45,661 @@ not in any particular release.
|
||||
<colspec colname="c4"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Paper</entry>
|
||||
<entry>Title</entry>
|
||||
<entry>Library Feature</entry>
|
||||
<entry>Proposal</entry>
|
||||
<entry>Status</entry>
|
||||
<entry>Comments</entry>
|
||||
<entry>SD-6 Feature Test</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry>
|
||||
<code>constexpr std::hardware_{constructive,destructive}_interference_size</code>
|
||||
</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html">
|
||||
P0154R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry> <code>__cpp_lib_hardware_interference_size >= 201603</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Core Issue 1776: Replacement of class objects containing reference members</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0137r1.html">
|
||||
P0137R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry> <code>__cpp_lib_launder >= 201606</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Wording for <code>std::uncaught_exceptions</code></entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf">
|
||||
N4259
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Wording for <code>std::uncaught_exceptions</code></entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
<entry align="center">6.1</entry>
|
||||
<entry><code>__cpp_lib_uncaught_exceptions >= 201411</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Variant: a type-safe union for C++17 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html">
|
||||
P0088R3
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry> <code>__has_include(<variant>)</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Library Fundamentals V1 TS Components: <code>optional</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
|
||||
P0220R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry> <code>__has_include(<optional>)</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Library Fundamentals V1 TS Components: <code>any</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
|
||||
P0220R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry> <code>__has_include(<any>)</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Library Fundamentals V1 TS Components: <code>string_view</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
|
||||
P0220R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry> <code>__has_include(<string_view>)</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Library Fundamentals V1 TS Components: <code>memory_resource</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
|
||||
P0220R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry> <code>__has_include(<memory_resource>)</code> </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Constant View: A proposal for a <code>std::as_const</code> helper function template </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="">
|
||||
P0007R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> __cpp_lib_as_const >= 201510 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Improving pair and tuple </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387">
|
||||
N4387
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry> N/A </entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> make_from_tuple: apply for construction </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0209r2.pdf">
|
||||
P0209R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_make_from_tuple >= 201606 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry>
|
||||
Removing <code>auto_ptr</code>, <code>random_shuffle()</code>,
|
||||
And Old <code><functional></code> Stuff
|
||||
</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm">
|
||||
N4190
|
||||
</link>
|
||||
</entry>
|
||||
<entry>
|
||||
Removing <code>auto_ptr</code>, <code>random_shuffle()</code>,
|
||||
And Old <code><functional></code> Stuff
|
||||
</entry>
|
||||
<entry>N</entry>
|
||||
<entry align="center">No (kept for backwards compatibility)</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Deprecating Vestigial Library Parts in C++17 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.htm">
|
||||
N4284
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html">
|
||||
P0174R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Contiguous Iterators </entry>
|
||||
<entry>Y</entry>
|
||||
<entry>No code changes required</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Making <code>std::owner_less</code> more flexible </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0074r0.html">
|
||||
P0074R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> __cpp_lib_transparent_operators >= 201510 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> <code>std::addressof</code> should be constexpr </entry>
|
||||
<entry>
|
||||
<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">
|
||||
LWG2296
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_addressof_constexpr >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Safe conversions in <code>unique_ptr<T[]></code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089.pdf">
|
||||
N4089
|
||||
N4089
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Safe conversions in <code>unique_ptr<T[]></code> </entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html">
|
||||
N4277
|
||||
</link>
|
||||
</entry>
|
||||
<entry>TriviallyCopyable <code>reference_wrapper</code> </entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf">
|
||||
N4258
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Cleaning-up noexcept in the Library</entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html">
|
||||
N4279
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Improved insertion interface for unique-key maps</entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf">
|
||||
N3911
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Transformation Trait Alias <code>void_t</code></entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html">
|
||||
N4169
|
||||
</link>
|
||||
</entry>
|
||||
<entry>A proposal to add invoke function template</entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf">
|
||||
N4280
|
||||
</link>
|
||||
</entry>
|
||||
<entry>Non-member size() and more</entry>
|
||||
<entry>Y</entry>
|
||||
<entry align="center"> 5 ? </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> LWG 2228: Missing SFINAE rule in unique_ptr templated assignment </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366.html">
|
||||
N4366
|
||||
</link>
|
||||
</entry>
|
||||
<entry>
|
||||
LWG 2228: Missing SFINAE rule in unique_ptr templated assignment
|
||||
</entry>
|
||||
<entry>Y</entry>
|
||||
<entry align="center"> 5 ? </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Re-enabling <code>shared_from_this</code></entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html">
|
||||
N4387
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html">
|
||||
P0033R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry> Improving pair and tuple, revision 3 </entry>
|
||||
<entry>Y</entry>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry><code>__cpp_lib_enable_shared_from_this >= 201603</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> A proposal to add <code>invoke</code> function template </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html">
|
||||
N4169
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry><code> __cpp_lib_invoke >= 201411 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>TriviallyCopyable <code>reference_wrapper</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html">
|
||||
N4277
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 5.1 </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Adopt <code>not_fn</code> from Library Fundamentals 2 for C++17 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0005r4.html">
|
||||
P0005R4
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code>__cpp_lib_not_fn >= 201603</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Fixes for <code>not_fn</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0358r1.html">
|
||||
P0358R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Fixing a design mistake in the searchers interface in Library Fundamentals </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf">
|
||||
P0253R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Extending memory management tools </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html">
|
||||
P0040R3
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> <code>shared_ptr::weak_type</code></entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html">
|
||||
P0163R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> __cpp_lib_shared_ptr_weak_type >= 201606</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Transformation Trait Alias <code>void_t</code></entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf">
|
||||
N3911
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center">6.1</entry>
|
||||
<entry><code> __cpp_lib_void_t >= 201411</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Wording for <code>bool_constant</code>, revision 1 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389.html">
|
||||
N4389
|
||||
</link>
|
||||
</entry>
|
||||
<entry> Wording for bool_constant, revision 1 </entry>
|
||||
<entry>Y</entry>
|
||||
<entry align="center">6.1</entry>
|
||||
<entry><code> __cpp_lib_bool_constant >= 201505</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html">
|
||||
P0006R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> __cpp_lib_type_trait_variable_templates >= 201510 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Logical Operator Type Traits</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0013r1.html">
|
||||
P0013R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry><code> __cpp_lib_logical_traits >= 201510 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Adding [nothrow-]swappable traits </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html">
|
||||
P0185R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 (<code>__is_swappable</code> available since 6.1)</entry>
|
||||
<entry><code> __cpp_lib_is_swappable >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> <code>is_callable</code>, the missing INVOKE related trait</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0077r2.html">
|
||||
P0077R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_is_callable >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> has_unique_object_representations </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html">
|
||||
P0258R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_has_unique_object_representations >= 201606 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Ordered by default </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0181r1.html">
|
||||
P0181R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_default_order >= 201606</code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Polishing <code><chrono></code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html">
|
||||
P0092R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_chrono >= 201510 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Integrating <code>std::string_view</code> and <code>std::string</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf">
|
||||
P0254R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Give 'std::string' a non-const '.data()' member function </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0272r1.html">
|
||||
P0272R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Cleaning-up noexcept in the Library</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf">
|
||||
N4258
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center">6.1</entry>
|
||||
<entry><code> __cpp_lib_allocator_traits_is_always_equal >= 201411 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Contiguous Iterators </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.htm">
|
||||
N4284
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center">N/A</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Minimal incomplete type support for standard containers </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html">
|
||||
N4510
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 (3.0)</entry>
|
||||
<entry><code> __cpp_lib_incomplete_container_elements >= 201505 </code>
|
||||
(the feature was always supported, but the macro was not defined until GCC 7)
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Emplace return type </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf">
|
||||
P0084R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Improved insertion interface for unique-key maps</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html">
|
||||
N4279
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry><code> __cpp_lib_map_try_emplace >= 201411</code>,
|
||||
<code> __cpp_lib_unordered_map_try_emplace >= 201411</code>
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Splicing Maps and Sets </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf">
|
||||
P0083R3
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_node_extract >= 201606 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Non-member <code>size()</code> and more</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf">
|
||||
N4280
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry><code> __cpp_lib_nonmember_container_access >= 201411 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> A Proposal to Add Constexpr Modifiers to <code>reverse_iterator</code>, <code>move_iterator</code>, <code>array</code> and Range Access </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html">
|
||||
P0031R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> __cpp_lib_array_constexpr >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> The Parallelism TS Should be Standardized </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html">
|
||||
P0024R2
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __has_include(<execution>) </code>,
|
||||
<code> __cpp_lib_parallel_algorithm >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> An algorithm to "clamp" a value between a pair of boundary values </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html">
|
||||
P0025R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 </entry>
|
||||
<entry><code> __cpp_lib_clamp >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Adopt Selected Library Fundamentals V2 Components for C++17 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0295r0.pdf">
|
||||
P0295R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_gcd >= 201606 </code>,
|
||||
<code> __cpp_lib_lcm >= 201606 </code>
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Proposal to Introduce a 3-Argument Overload to <code>std::hypot</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0030r1.pdf">
|
||||
P0030R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_hypot >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry> Mathematical Special Functions for C++17 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf">
|
||||
P0226R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> 7 (6.1) </entry>
|
||||
<entry><code> __cpp_lib_math_special_functions >= 201603 </code>
|
||||
(for GCC 6 or pre-C++17 define
|
||||
<code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code> to a non-zero value
|
||||
and test for <code>__STDCPP_MATH_SPEC_FUNCS__ >= 201003L</code>)
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry>Adopt the File System TS for C++17 </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html">
|
||||
P0218R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __has_include(<filesystem>) </code>,
|
||||
<code> __cpp_lib_filesystem >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Relative Paths for Filesystem</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html">
|
||||
P0219R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Adapting string_view by filesystem paths </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf">
|
||||
P0392R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> constexpr <code>atomic<T>::is_always_lock_free</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html">
|
||||
P0152R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_atomic_is_always_lock_free >= 201603 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>A proposal to add <code>shared_mutex</code> (untimed) (Revision 4)</entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html">
|
||||
N4508
|
||||
</link>
|
||||
</entry>
|
||||
<entry>A proposal to add shared_mutex (untimed) (Revision 4)</entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
<entry align="center"> 6.1 </entry>
|
||||
<entry><code> __cpp_lib_shared_mutex >= 201505 </code></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<?dbhtml bgcolor="#C8B0B0" ?>
|
||||
<entry> Variadic <code>lock_guard</code> </entry>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html">
|
||||
N4510
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0156r0.html">
|
||||
P0156R0
|
||||
</link>
|
||||
</entry>
|
||||
<entry>
|
||||
Minimal incomplete type support for standard containers, revision 4
|
||||
</entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>
|
||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html">
|
||||
P0013R1
|
||||
</link>
|
||||
</entry>
|
||||
<entry>
|
||||
Logical Operator Type Traits (revision 1)
|
||||
</entry>
|
||||
<entry>Y</entry>
|
||||
<entry/>
|
||||
<entry align="center"> No </entry>
|
||||
<entry><code> __cpp_lib_lock_guard_variadic >= 201510 </code></entry>
|
||||
</row>
|
||||
|
||||
</tbody>
|
||||
|
Loading…
Reference in New Issue
Block a user