summaryrefslogtreecommitdiffstats
path: root/www/cxx_status.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/cxx_status.html')
-rw-r--r--www/cxx_status.html99
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>
OpenPOWER on IntegriCloud