diff options
Diffstat (limited to 'www/cxx_status.html')
-rw-r--r-- | www/cxx_status.html | 99 |
1 files changed, 88 insertions, 11 deletions
diff --git a/www/cxx_status.html b/www/cxx_status.html index ac1862a..ff6ec8a 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -3,11 +3,12 @@ <html> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>Clang - C++98 and C++11 Status</title> + <title>Clang - C++98, C++11, and C++14 Status</title> <link type="text/css" rel="stylesheet" href="menu.css"> <link type="text/css" rel="stylesheet" href="content.css"> <style type="text/css"> .none { background-color: #FFCCCC } + .partial { background-color: #FFE0B0 } .svn { background-color: #FFFF99 } .full { background-color: #CCFF99 } .na { background-color: #DDDDDD } @@ -22,22 +23,25 @@ <div id="content"> <!--*************************************************************************--> -<h1>C++98 and C++11 Support in Clang</h1> +<h1>C++98, C++11, and C++14 Support in Clang</h1> <!--*************************************************************************--> -<p>Last updated: $Date: 2013-03-18 22:57:52 +0100 (Mon, 18 Mar 2013) $</p> +<p>Last updated: $Date: 2013-05-21 02:28:07 +0200 (Tue, 21 May 2013) $</p> <h2 id="cxx98">C++98 implementation status</h2> <p>Clang currently implements all of the ISO C++ 1998 standard (including the defects addressed in the ISO C++ 2003 standard) - except for 'export' (which has been removed in C++11) + except for <tt>export</tt> (which has been removed in C++11) and is considered a production-quality C++ compiler. The <a href="http://llvm.org/bugs/">LLVM bug tracker</a> contains a Clang C++ component that tracks known Clang C++ bugs.</p> <h2 id="cxx11">C++11 implementation status</h2> - <p>Clang provides support for a number of features included in the new <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">ISO C++ Standard, ISO/IEC 14882:2011</a>. The following table describes which C++11 features have been implemented in Clang and in which Clang versions they became available.</p> + <p>Clang implements all of the <a + href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">ISO + C++ 2011 standard</a>. The following table describes the Clang version + in which each feature became available.</p> <p>By default, Clang builds C++ code according to the C++98 standard, with many C++11 features accepted as extensions. You can use Clang in C++11 mode with the @@ -47,7 +51,8 @@ patches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a work with Clang in C++11 mode. Patches are also needed to make <a href="libstdc++4.6-clang11.patch">libstdc++-4.6</a>, and <a href="libstdc++4.7-clang11.patch">libstdc++-4.7</a> work with Clang -releases prior to version 3.2 in C++11 mode.</p> +releases prior to version 3.2 in C++11 mode. <tt>thread_local</tt> support +currently requires g++-4.8's C++ runtime library.</p> <table width="689" border="1" cellspacing="0"> <tr> @@ -174,7 +179,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Generalized attributes</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">N2761</a></td> - <td class="svn" align="center">SVN <a href="#n2761">(1)</a></td> + <td class="svn" align="center">Clang 3.3 <a href="#n2761">(1)</a></td> </tr> <tr> <td>Generalized constant expressions</td> @@ -184,7 +189,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Alignment support</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf">N2341</a></td> - <td class="svn" align="center">SVN</td> + <td class="svn" align="center">Clang 3.3</td> </tr> <!-- Skipped N1627: Conditionally-support behavior --> <!-- Skipped N1727: Changing Undefined Behavior into Diagnosable Errors --> @@ -196,7 +201,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Inheriting constructors</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm">N2540</a></td> - <td class="none" align="center">No</td> + <td class="svn" align="center">Clang 3.3</td> </tr> <tr> <td>Explicit conversion operators</td> @@ -303,7 +308,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Sequence points</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html">N2239</a></td> - <td class="svn" align="center">SVN</td> + <td class="svn" align="center">Clang 3.3</td> </tr> <tr> <td>Atomic operations</td> @@ -349,7 +354,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Thread-local storage</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm">N2659</a></td> - <td class="none" align="center">No</td> + <td class="svn" align="center">Clang 3.3</td> </tr> <tr> <td>Dynamic initialization and destruction with concurrency</td> @@ -394,6 +399,78 @@ integer type, because changing <code>intmax_t</code> would be an ABI-incompatible change.</span> </p> +<h2 id="cxx14">C++1y implementation status</h2> + +<p>Clang is introducing support for the upcoming C++ language standard, +provisionally named C++1y. The following table describes which C++1y features +have been implemented in Clang and in which Clang version they became +available.</p> + +<p>You can use Clang in C++1y mode with the <code>-std=c++1y</code> option.</p> + +<table width="689" border="1" cellspacing="0"> + <tr> + <th>Language Feature</th> + <th>C++1y Proposal</th> + <th>Available in Clang?</th> + </tr> + <tr> + <td>Tweak to certain C++ contextual conversions</td> + <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf">N3323</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Binary literals</td> + <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf">N3472</a></td> + <td class="full" align="center">Yes</td> + </tr> + <tr> + <td>decltype(auto)</td> + <td rowspan=2 style="vertical-align:middle"><a href="http://isocpp.org/files/papers/N3638.html">N3638</a></td> + <td class="svn" align="center">Clang 3.3</td> + </tr> + <tr> + <td>Return type deduction for normal functions</td> + <td class="partial" align="center">Partial</td> + </tr> + <tr> + <td>Runtime-sized arrays with automatic storage duration</td> + <td><a href="http://isocpp.org/files/papers/N3639.html">N3639</a></td> + <td class="partial" align="center">Partial</td> + </tr> + <tr> + <td>Initialized lambda captures</td> + <td><a href="http://isocpp.org/files/papers/N3648.html">N3648</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Generic lambdas</td> + <td><a href="http://isocpp.org/files/papers/N3649.html">N3649</a></td> + <td class="partial" align="center"> + No [<a href="https://github.com/faisalv/clang-glambda">WIP</a>]</td> + </tr> + <tr> + <td>Variable templates</td> + <td><a href="http://isocpp.org/files/papers/N3651.pdf">N3651</a></td> + <td class="none" align="center">No</td> + </tr> + <tr> + <td>Relaxing requirements on constexpr functions</td> + <td><a href="http://isocpp.org/files/papers/N3652.html">N3652</a></td> + <td class="partial" align="center">Partial</td> + </tr> + <tr> + <td>Member initializers and aggregates</td> + <td><a href="http://isocpp.org/files/papers/N3653.html">N3653</a></td> + <td class="svn" align="center">Clang 3.3</td> + </tr> + <tr> + <td>Clarifying memory allocation</td> + <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html">-->N3664<!--</a>--></td> + <td class="full" align="center">Yes</td> + </tr> +</table> + </div> </body> </html> |