On Mon, Jan 21, 2019 at 04:11:04PM +0000, Jonathan Wakely wrote:
> > I'd like to ping this patch.
> 
> For P0941R2 I think we can just say it's supported. For the library
> docs I said we support it since GCC 5.1 because that's when we started
> defining feature test macros. The point of the paper is to define
> macros for the features that are supported, and we've been doing that
> for years. If a macro is missing, it's because we don't support the
> feature yet, and that's a correct implementation of the macro!

So what about saying it is supported since e.g. 5 when __has_cpp_attribute
support has been added (or 4.9 when first __cpp_* predefined macros were
added)?  Like below.
What about the rest, ok for wwwdocs?

--- htdocs/projects/cxx-status.html.jj  2019-01-14 12:18:18.792043123 +0100
+++ htdocs/projects/cxx-status.html     2019-01-21 17:34:41.345489056 +0100
@@ -115,7 +115,7 @@
     <tr>
       <td> Range-based for statements with initializer </td>
       <td><a href="http://wg21.link/p0614r1";>P0614R1</a> </td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
@@ -127,28 +127,28 @@
     <tr>
       <td> ADL and function templates that are not visible </td>
       <td><a href="http://wg21.link/p0846r0";>P0846R0</a> </td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> <code>const</code> mismatch with defaulted copy constructor </td>
       <td><a href="http://wg21.link/p0641r2";>P0641R2</a> </td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Less eager instantiation of <code>constexpr</code> functions </td>
       <td><a href="http://wg21.link/p0859r0";>P0859R0</a></td>
-      <td class="supported"> 5.2 (mostly)<br/>9 (P0859R0) </td>
+      <td class="supported"> 5.2 (mostly)<br/> <a 
href="../gcc-9/changes.html#cxx">9</a> (P0859R0) </td>
       <td> </td>
     </tr>
     <tr>
       <td> Consistent comparison (<code>operator&lt;=&gt;</code>) </td>
       <td><a href="http://wg21.link/p0515r3";>P0515R3</a><br/>
-       <a href="http://wg21.link/P0905r1";>P0905R1</a><br/>
+       <a href="http://wg21.link/p0905r1";>P0905R1</a><br/>
        <a href="http://wg21.link/p1120r0";>P1120R0</a></td>
       <td class="unsupported"> No </td>
-      <td> </td>
+      <td> __cpp_impl_three_way_comparison &gt;= 201711 </td>
     </tr>
     <tr>
       <td> Access checking on specializations </td>
@@ -159,19 +159,19 @@
     <tr>
       <td> Default constructible and assignable stateless lambdas </td>
       <td><a href="http://wg21.link/p0624r2";>P0624R2</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Lambdas in unevaluated contexts </td>
       <td><a href="http://wg21.link/p0315r4";>P0315R4</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Language support for empty objects </td>
       <td><a href="http://wg21.link/p0840r2";>P0840R2</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
@@ -195,32 +195,32 @@
     <tr>
       <td> Down with typename! </td>
       <td><a href="http://wg21.link/p0634r3";>P0634R3</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Allow pack expansion in lambda init-capture </td>
       <td><a href="http://wg21.link/p0780r2";>P0780R2</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Proposed wording for likely and unlikely attributes </td>
       <td><a href="http://wg21.link/p0479r5";>P0479R5</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Deprecate implicit capture of this via [=] </td>
       <td><a href="http://wg21.link/p0806r2";>P0806R2</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Class Types in Non-Type Template Parameters </td>
       <td><a href="http://wg21.link/p0732r2";>P0732R2</a></td>
-      <td class="supported"> 9 </td>
-      <td> </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
+      <td> __cpp_nontype_template_parameter_class &gt;= 201806 </td>
     </tr>
     <tr>
       <td> Atomic Compare-and-Exchange with Padding Bits </td>
@@ -231,19 +231,19 @@
     <tr>
       <td> Efficient sized delete for variable sized classes </td>
       <td><a href="http://wg21.link/p0722r3";>P0722R3</a></td>
-      <td class="supported"> 9 </td>
-      <td> </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
+      <td> __cpp_impl_destroying_delete &gt;= 201806 </td>
     </tr>
     <tr>
       <td> Allowing Virtual Function Calls in Constant Expressions </td>
       <td><a href="http://wg21.link/p1064r0";>P1064R0</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Prohibit aggregates with user-declared constructors </td>
       <td><a href="http://wg21.link/p1008r1";>P1008R1</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
@@ -256,20 +256,20 @@
     <tr>
       <td> explicit(bool) </td>
       <td><a href="http://wg21.link/p0892r2";>P0892R2</a></td>
-      <td class="supported"> 9 </td>
-      <td> </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
+      <td> __cpp_conditional_explicit &gt;= 201806 </td>
     </tr>
     <tr>
       <td> Signed integers are two's complement </td>
       <td><a href="http://wg21.link/p1236r1";>P1236R1</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> char8_t </td>
       <td><a href="http://wg21.link/p0482r6";>P0482R6</a></td>
       <td class="unsupported"> No </td>
-      <td> </td>
+      <td> __cpp_char8_t &gt;= 201811 </td>
     </tr>
     <tr>
       <td> Immediate functions (consteval) </td>
@@ -280,23 +280,30 @@
     <tr>
       <td> std::is_constant_evaluated </td>
       <td><a href="http://wg21.link/p0595r2";>P0595R2</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
       <td> Nested inline namespaces </td>
       <td><a href="http://wg21.link/p1094r2";>P1094R2</a></td>
-      <td class="supported"> 9 </td>
+      <td class="supported"> <a href="../gcc-9/changes.html#cxx">9</a> </td>
       <td> </td>
     </tr>
     <tr>
-      <td> Relaxations of constexpr restrictions</td>
+      <td> Relaxations of constexpr restrictions </td>
       <td><a href="http://wg21.link/p1002r1";>P1002R1</a><br/>
       <a href="http://wg21.link/p1327r1";>P1327R1</a><br/>
       <a href="http://wg21.link/p1330r0";>P1330R0</a></td>
       <td class="unsupported"> No </td>
       <td> </td>
     </tr>
+    <tr>
+      <td> Feature test macros </td>
+      <td><a href="http://wg21.link/p0941r2";>P0941R2</a><br/>
+      <td class="supported"> <a href="../gcc-4.9/changes.html#cxx">4.9</a> 
(<code>__cpp_</code> macros) <br />
+        <a href="../gcc-5/changes.html#cxx">5</a> 
(<code>__has_cpp_attribute</code>) </td>
+      <td> </td>
+    </tr>
   </table>
 
   <h2 id="cxx17">C++17 Support in GCC</h2>


        Jakub

Reply via email to