diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-07-19 07:02:30 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-07-19 07:02:30 +0000 |
commit | de51d671486b6ac9a2ad9ee5fcfdb1a23cc59238 (patch) | |
tree | 17ff629bd1f00b82d8dbb66a022e2f59e218c3c2 /www/cxx_status.html | |
parent | 8746d127c04f5bbaf6c6e88cef8606ca5a6a54e9 (diff) |
Vendor import of clang trunk r308421:vendor/clang/clang-trunk-r308421
Notes
Notes:
svn path=/vendor/clang/dist/; revision=321186
svn path=/vendor/clang/clang-trunk-r308421/; revision=321187; tag=vendor/clang/clang-trunk-r308421
Diffstat (limited to 'www/cxx_status.html')
-rw-r--r-- | www/cxx_status.html | 83 |
1 files changed, 72 insertions, 11 deletions
diff --git a/www/cxx_status.html b/www/cxx_status.html index 23d95bda67c0..39c3147ca47c 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -2,7 +2,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>Clang - C++1z, C++14, C++11 and C++98 Status</title> + <title>Clang - C++17, C++14, C++11 and C++98 Status</title> <link type="text/css" rel="stylesheet" href="menu.css"> <link type="text/css" rel="stylesheet" href="content.css"> <style type="text/css"> @@ -26,13 +26,13 @@ <!--*************************************************************************--> <h1>C++ Support in Clang</h1> <!--*************************************************************************--> -<p>Last updated: $Date: 2017-07-06 02:29:13 +0200 (Thu, 06 Jul 2017) $</p> +<p>Last updated: $Date: 2017-07-15 17:51:59 +0200 (Sat, 15 Jul 2017) $</p> <p>Clang fully implements all published ISO C++ standards (<a href="#cxx98">C++98 / C++03</a>, <a href="#cxx11">C++11</a>, and <a href="#cxx14">C++14</a>), and most of the upcoming <a -href="#cxx17">C++1z</a> standard. +href="#cxx17">C++17</a> standard. <p>The Clang community is continually striving to improve C++ standards compliance between releases by submitting and tracking <a @@ -519,14 +519,12 @@ version 3.7. </p> </details> -<h2 id="cxx17">C++1z implementation status</h2> +<h2 id="cxx17">C++17 implementation status</h2> -<p>Clang has <b>experimental</b> support for some proposed features of -the C++ standard following C++14, provisionally named C++1z. -Note that support for these features may change or be removed without notice, -as the draft C++1z standard evolves. +<p>Clang SVN implements all the features +of the C++ 2017 Draft International Standard. -<p>You can use Clang in C++1z mode with the <code>-std=c++1z</code> option.</p> +<p>You can use Clang in C++17 mode with the <code>-std=c++1z</code> option.</p> <details open> <summary>List of features and minimum Clang version with support</summary> @@ -534,7 +532,7 @@ as the draft C++1z standard evolves. <table width="689" border="1" cellspacing="0"> <tr> <th>Language Feature</th> - <th>C++1z Proposal</th> + <th>C++17 Proposal</th> <th>Available in Clang?</th> </tr> <!-- Issaquah 2014 papers --> @@ -551,7 +549,7 @@ as the draft C++1z standard evolves. </tr> <!-- <tr> - <td rowspan="2">Terse range-based for loops (removed from C++1z)</td> + <td rowspan="2">Terse range-based for loops (removed from C++17)</td> <td rowspan="2"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3994.htm">N3994</a></td> <td class="none" align="center">Clang 3.5: Yes</td> </tr> @@ -777,6 +775,69 @@ code. This issue is expected to be rectified soon. </p> </details> +<h2 id="cxx20">C++2a implementation status</h2> + +<p>Clang does not yet support any of the proposed features of +<!--<p>Clang has <b>experimental</b> support for some proposed features of--> +the C++ standard following C++17, provisionally named C++2a. +Note that support for these features may change or be removed without notice, +as the draft C++2a standard evolves. + +<!--<p>You can use Clang in C++2a mode with the <code>-std=c++2a</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++2a Proposal</th> + <th>Available in Clang?</th> + </tr> + <!-- Toronto 2017 papers --> + <tr> + <td>Default member initializers for bit-fields</td> + <td><a href="http://wg21.link/p0683r1">P0683R1</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td><tt>const&</tt>-qualified pointers to members</td> + <td><a href="http://wg21.link/p0704r1">P0704R1</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Allow <i>lambda-capture</i> <tt>[=, this]</tt></td> + <td><a href="http://wg21.link/p0409r2">P0409R2</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td><tt>__VA_OPT__</tt> for preprocessor comma elision</td> + <td><a href="http://wg21.link/p0306r4">P0306R4</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Designated initializers</td> + <td><a href="http://wg21.link/p0329r4">P0329R4</a></td> + <td class="partial" align="center">Partial (extension)</td> + </tr> + <tr> + <td><i>template-parameter-list</i> for generic lambdas</td> + <td><a href="http://wg21.link/p0428r2">P0428R2</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Initializer list constructors in class template argument deduction</td> + <td><a href="http://wg21.link/p0702r1">P0702R1</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Concepts</td> + <td><a href="http://wg21.link/p0734r0">P0734R0</a></td> + <td class="none" align="center">No</td> + </tr> +</table> +</details> + <h2 id="ts">Technical specifications and standing documents</h2> <p>ISO C++ also publishes a number of documents describing additional language |