diff options
Diffstat (limited to 'www/cxx_status.html')
-rw-r--r-- | www/cxx_status.html | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/www/cxx_status.html b/www/cxx_status.html index e2ab51f..ac1862a 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -11,6 +11,7 @@ .svn { background-color: #FFFF99 } .full { background-color: #CCFF99 } .na { background-color: #DDDDDD } + span:target { background-color: #FFFFBB; outline: #DDDD55 solid thin; } th { background-color: #FFDDAA } </style> </head> @@ -23,7 +24,7 @@ <!--*************************************************************************--> <h1>C++98 and C++11 Support in Clang</h1> <!--*************************************************************************--> -<p>Last updated: $Date: 2012-10-23 02:32:41 +0200 (Tue, 23 Oct 2012) $</p> +<p>Last updated: $Date: 2013-03-18 22:57:52 +0100 (Mon, 18 Mar 2013) $</p> <h2 id="cxx98">C++98 implementation status</h2> @@ -38,9 +39,11 @@ <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>You can use Clang in C++11 mode either -with <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++. -Patches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a> +<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 +<code>-std=c++11</code> option. Clang's C++11 mode can be used +with <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++, but +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 @@ -171,7 +174,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="none" align="center">No</td> + <td class="svn" align="center">SVN <a href="#n2761">(1)</a></td> </tr> <tr> <td>Generalized constant expressions</td> @@ -181,7 +184,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="full" align="center">Clang 3.0</td> + <td class="svn" align="center">SVN</td> </tr> <!-- Skipped N1627: Conditionally-support behavior --> <!-- Skipped N1727: Changing Undefined Behavior into Diagnosable Errors --> @@ -300,7 +303,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="none" align="center">No</td> + <td class="svn" align="center">SVN</td> </tr> <tr> <td>Atomic operations</td> @@ -310,7 +313,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Strong Compare and Exchange</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748.html">N2748</a></td> - <td class="full" align="center">Clang 3.1</td> + <td class="full" align="center">Clang 3.1 <a href="#n2748">(2)</a></td> </tr> <tr> <td>Bidirectional Fences</td> @@ -321,12 +324,12 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Memory model</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm">N2429</a></td> - <td class="none" align="center">No</td> + <td class="full" align="center">Clang 3.2</td> </tr> <tr> <td>Data-dependency ordering: atomics and memory model</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm">N2664</a></td> - <td class="none" align="center">No</td> + <td class="full" align="center">Clang 3.2 <a href="#n2664">(3)</a></td> </tr> <tr> <td>Propagating exceptions</td> @@ -351,7 +354,7 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Dynamic initialization and destruction with concurrency</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">N2660</a></td> - <td class="none" align="center">No</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr class="separator"> @@ -375,9 +378,22 @@ releases prior to version 3.2 in C++11 mode.</p> <tr> <td>Extended integral types</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf">N1988</a></td> - <td class="none" align="center">No</td> + <td class="na" align="center">N/A <a href="#n1988">(4)</a></td> </tr> </table> + +<p> +<span id="n2761">(1): The <code>[[carries_dependency]]</code> attribute +has no effect.</span><br> +<span id="n2748">(2): All compare-exchange operations are emitted as +strong compare-exchanges.</span><br> +<span id="n2664">(3): <code>memory_order_consume</code> is lowered to +<code>memory_order_acquire</code>.</span><br> +<span id="n1988">(4): <code>__int128</code> is not treated as an extended +integer type, because changing <code>intmax_t</code> would be an +ABI-incompatible change.</span> +</p> + </div> </body> </html> |