diff mbox

Update C++17 library implementation status table

Message ID 20160804133256.GA22283@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely Aug. 4, 2016, 1:32 p.m. UTC
This adds all the features from the latest draft of SD-6, and
reformats the table to be closer to the tables at
https://gcc.gnu.org/projects/cxx-status.html (including adding the
feature-test macros).

	* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
	* doc/html/manual/status.html: Regenerate.

Committed to trunk.
commit 9d5280b3ecfbd679d00f98bd48c57a3151b1fcfd
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Aug 4 14:31:21 2016 +0100

    Update C++17 library implementation status table
    
    	* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
    	* doc/html/manual/status.html: Regenerate.

Comments

Jonathan Wakely Aug. 6, 2016, 10:37 a.m. UTC | #1
On 04/08/16 14:32 +0100, Jonathan Wakely wrote:
>This adds all the features from the latest draft of SD-6, and
>reformats the table to be closer to the tables at
>https://gcc.gnu.org/projects/cxx-status.html (including adding the
>feature-test macros).

I'd like to do the same for the C++14 status table (since SD-6 also
defines macros for C++14 features). If somebody else wants to do that
work, including figuring out which release added each component, I
would be very grateful. Otherwise I'll do it in a couple of weeks.
diff mbox

Patch

diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
index 60e5fae..d32399d 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
@@ -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(&lt;variant&gt;)</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(&lt;optional&gt;)</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(&lt;any&gt;)</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(&lt;string_view&gt;)</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(&lt;memory_resource&gt;)</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>&lt;functional&gt;</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>&lt;functional&gt;</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&lt;T[]&gt;</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&lt;T[]&gt;</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>&lt;chrono&gt;</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(&lt;execution&gt;) </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(&lt;filesystem&gt;) </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&lt;T&gt;::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>