Skip to content

Commit

Permalink
[www] Add cxx_status tracking for C++23.
Browse files Browse the repository at this point in the history
Convert the list of standards to a table; it's starting to get unwieldy.
  • Loading branch information
zygoloid authored and morehouse committed Mar 4, 2021
1 parent cf20823 commit 4329afc
Showing 1 changed file with 71 additions and 7 deletions.
78 changes: 71 additions & 7 deletions clang/www/cxx_status.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,45 @@
<h1>C++ Support in Clang</h1>
<!--*************************************************************************-->

<p>Clang fully implements all published ISO C++ standards
(<a href="#cxx98">C++98 / C++03</a>,
<a href="#cxx11">C++11</a>,
<a href="#cxx14">C++14</a>, and
<a href="#cxx17">C++17</a>), and some of the upcoming <a
href="#cxx20">C++20</a> standard.
<p>Clang implements the following published and upcoming ISO C++ standards:</p>

<table width="689" border="1" cellspacing="0">
<tr>
<th>Language Standard</th>
<th>Flag</th>
<th>Available in Clang?</th>
</tr>
<tr>
<td><a href="#cxx98">C++98 / C++03</a></td>
<td><tt>-std=c++98</tt></td>
<td class="full" align="center">Yes (other than <tt>export</tt>)</td>
</tr>
<tr>
<td><a href="#cxx11">C++11</a></td>
<td><tt>-std=c++11</tt></td>
<td class="full" align="center">Clang 3.3</td>
</tr>
<tr>
<td><a href="#cxx14">C++14</a></td>
<td><tt>-std=c++14</tt></td>
<td class="full" align="center">Clang 3.4</td>
</tr>
<tr>
<td><a href="#cxx17">C++17</a></td>
<td><tt>-std=c++17</tt></td>
<td class="full" align="center">Clang 5</td>
</tr>
<tr>
<td><a href="#cxx20">C++20</a></td>
<td><tt>-std=c++20</tt></td>
<td class="partial" align="center">Partial</td>
</tr>
<tr>
<td><a href="#cxx23">C++2b (tentatively C++23)</a></td>
<td><tt>-std=c++2b</tt></td>
<td class="none" align="center">No</td>
</tr>
</table>

<p>The Clang community is continually striving to improve C++ standards
compliance between releases by submitting and tracking <a
Expand Down Expand Up @@ -823,7 +856,7 @@ <h2 id="cxx17">C++17 implementation status</h2>
<h2 id="cxx20">C++20 implementation status</h2>

<p>Clang has support for some of the features of the
ISO C++ 2020 Draft International Standard.
<a href="https://www.iso.org/standard/79358.html">ISO C++ 2020 standard</a>.

<p>You can use Clang in C++20 mode with the <code>-std=c++20</code> option
(use <code>-std=c++2a</code> in Clang 9 and earlier).</p>
Expand Down Expand Up @@ -1217,6 +1250,37 @@ <h2 id="cxx20">C++20 implementation status</h2>
</p>
</details>

<h2 id="cxx23">C++2b implementation status</h2>

<p>Clang has support for some of the features of the C++ standard following
C++20, informally referred to as C++2b.

<p>You can use Clang in C++2b mode with the <code>-std=c++2b</code> option.</p>

<details open>
<summary>List of features and minimum Clang version with support</summary>

<table width="689" border="1" cellspacing="0">
<tr>
<th>Language Feature</th>
<th>C++2b Proposal</th>
<th>Available in Clang?</th>
</tr>
<!-- Fall 2020 papers -->
<tr>
<td>Literal suffix <tt>uz</tt>, <tt>z</tt> for <tt>size_t</tt>, <tt>ssize_t</tt></td>
<td><a href="https://wg21.link/p0330r8">P0330R8</a></td>
<td class="none" align="center">No</td>
</tr>
<!-- Spring 2021 papers -->
<tr>
<td>Make <tt>()</tt> in lambdas optional in all cases</td>
<td><a href="https://wg21.link/p1102r2">P1102R2</a></td>
<td class="none" align="center">No</td>
</tr>
</table>
</details>

<h2 id="dr">Defect reports</h2>

<p>Clang generally aims to implement resolutions to Defect Reports (bug fixes
Expand Down

0 comments on commit 4329afc

Please sign in to comment.