First C++26 papers started to trickle in. Update our docs accordingly. We don't have -std=c++2c/-std=c++26/-std=gnu++2c/-std=gnu++26 yet, but I should have a patch for it by the end of this week.
W3C validated. Pushed. commit 9c66e33761140358d350c5fb2d1638f6afdaead4 Author: Marek Polacek <pola...@redhat.com> Date: Wed Jun 21 12:41:25 2023 -0400 cxx-status: Add C++26 papers (Spring 2023, Varna) diff --git a/htdocs/projects/cxx-status.html b/htdocs/projects/cxx-status.html index 675fbcd0..99387540 100644 --- a/htdocs/projects/cxx-status.html +++ b/htdocs/projects/cxx-status.html @@ -20,6 +20,7 @@ <li><a href="#cxx17">C++17</a></li> <li><a href="#cxx20">C++20</a></li> <li><a href="#cxx23">C++23</a></li> + <li><a href="#cxx26">C++26</a></li> <li><a href="#tses">Technical Specifications</a></li> </ul> @@ -32,6 +33,99 @@ Implementation Status</a> section of the Libstdc++ manual. </p> + <h2 id="cxx26">C++26 Support in GCC</h2> + + <p>GCC has experimental support for the next revision of the C++ + standard, which is expected to be published in 2026.</p> + +<!-- TODO --> +<!-- + <p>C++26 features are available since GCC 14. To enable C++26 + support, add the command-line parameter <code>-std=c++2c</code> + to your <code>g++</code> command line. Or, to enable GNU + extensions in addition to C++26 features, + add <code>-std=gnu++2c</code>.</p> + + <p><strong>Important</strong>: Because the ISO C++26 standard is still + evolving, GCC's support is <strong>experimental</strong>. No attempt will + be made to maintain backward compatibility with implementations of C++26 + features that do not reflect the final standard.</p> +--> + + <h2>C++26 Language Features</h2> + + <table class="cxxstatus"> + <tr class="separator"> + <th>Language Feature</th> + <th>Proposal</th> + <th>Available in GCC?</th> + <th>SD-6 Feature Test</th> + </tr> + <!-- Spring 2023 papers (Varna) --> + <tr> + <td> Remove undefined behavior from lexing </td> + <td><a href="https://wg21.link/P2621R2">P2621R2</a> (<a href="./cxx-dr-status.html">DR</a>) </td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110340">No</a></td> + <td> </td> + </tr> + <tr> + <td> Making non-encodable string literals ill-formed </td> + <td><a href="https://wg21.link/P1854R4">P1854R4 </a> (<a href="./cxx-dr-status.html">DR</a>) </td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110341">No</a></td> + <td> </td> + </tr> + <tr> + <td> Unevaluated strings </td> + <td> <a href="https://wg21.link/P2361R6">P2361R6</a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110342">No</a></td> + <td> </td> + </tr> + <tr> + <td> Add @, $, and ` to the basic character set </td> + <td> <a href="https://wg21.link/P2558R2">P2558R2</a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110343">No</a></td> + <td> </td> + </tr> + <tr> + <td> constexpr cast from <code>void*</code> </td> + <td> <a href="https://wg21.link/P2738R1">P2738R1</a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110344">No</a></td> + <td> </td> + </tr> + <tr> + <td> On the ignorability of standard attributes </td> + <td><a href="https://wg21.link/P2552R3">P2552R3</a> (<a href="./cxx-dr-status.html">DR</a>) </td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110345">No</a></td> + <td> </td> + </tr> + <tr> + <td> Static storage for braced initializers </td> + <td><a href="https://wg21.link/P2752R3">P2752R3</a> (<a href="./cxx-dr-status.html">DR</a>) </td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110346">No</a></td> + <td> </td> + </tr> + <tr> + <td> User-generated <code>static_assert</code> messages </td> + <td> <a href="https://wg21.link/P2741R3">P2741R3</a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110348">No</a></td> + <td> </td> + </tr> + <tr> + <td> Placeholder variables with no name </td> + <td> <a href="https://wg21.link/P2169R4">P2169R4</a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR110349">No</a></td> + <td> </td> + </tr> + <!-- + <tr> + <td> </td> + <td> <a href="https://wg21.link/p"></a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR">No</a></td> + <td> </td> + </tr> + --> + </table> + <h2 id="cxx23">C++23 Support in GCC</h2> <p>GCC has experimental support for the next revision of the C++