Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Side by Side Diff: www/cxx_status.html

Issue 184973004: Prep for merging 3.4: Undo changes from 3.3 branch (Closed) Base URL: http://git.chromium.org/native_client/pnacl-clang.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/clang-format/clang-format.el ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd"> 2 "http://www.w3.org/TR/html4/strict.dtd">
3 <html> 3 <html>
4 <head> 4 <head>
5 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 5 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6 <title>Clang - C++98, C++11, and C++14 Status</title> 6 <title>Clang - C++98 and C++11 Status</title>
7 <link type="text/css" rel="stylesheet" href="menu.css"> 7 <link type="text/css" rel="stylesheet" href="menu.css">
8 <link type="text/css" rel="stylesheet" href="content.css"> 8 <link type="text/css" rel="stylesheet" href="content.css">
9 <style type="text/css"> 9 <style type="text/css">
10 .none { background-color: #FFCCCC } 10 .none { background-color: #FFCCCC }
11 .partial { background-color: #FFE0B0 } 11 .partial { background-color: #FFE0B0 }
12 .svn { background-color: #FFFF99 } 12 .svn { background-color: #FFFF99 }
13 .full { background-color: #CCFF99 } 13 .full { background-color: #CCFF99 }
14 .na { background-color: #DDDDDD } 14 .na { background-color: #DDDDDD }
15 span:target { background-color: #FFFFBB; outline: #DDDD55 solid thin; } 15 span:target { background-color: #FFFFBB; outline: #DDDD55 solid thin; }
16 th { background-color: #FFDDAA } 16 th { background-color: #FFDDAA }
17 </style> 17 </style>
18 </head> 18 </head>
19 <body> 19 <body>
20 20
21 <!--#include virtual="menu.html.incl"--> 21 <!--#include virtual="menu.html.incl"-->
22 22
23 <div id="content"> 23 <div id="content">
24 24
25 <!--*************************************************************************--> 25 <!--*************************************************************************-->
26 <h1>C++98, C++11, and C++14 Support in Clang</h1> 26 <h1>C++98, C++11, and C++14 Support in Clang</h1>
27 <!--*************************************************************************--> 27 <!--*************************************************************************-->
28 <p>Last updated: $Date$</p> 28 <p>Last updated: $Date$</p>
29 29
30 <h2 id="cxx98">C++98 implementation status</h2> 30 <h2 id="cxx98">C++98 implementation status</h2>
31 31
32 <p>Clang currently implements all of the ISO C++ 1998 standard 32 <p>Clang currently implements all of the ISO C++ 1998 standard
33 (including the defects addressed in the ISO C++ 2003 standard) 33 (including the defects addressed in the ISO C++ 2003 standard)
34 except for <tt>export</tt> (which has been removed in C++11) 34 except for 'export' (which has been removed in C++11)
35 and is considered a production-quality C++ compiler. The <a 35 and is considered a production-quality C++ compiler. The <a
36 href="http://llvm.org/bugs/">LLVM bug tracker</a> contains a Clang 36 href="http://llvm.org/bugs/">LLVM bug tracker</a> contains a Clang
37 C++ component that tracks known Clang C++ bugs.</p> 37 C++ component that tracks known Clang C++ bugs.</p>
38 38
39 <h2 id="cxx11">C++11 implementation status</h2> 39 <h2 id="cxx11">C++11 implementation status</h2>
40 40
41 <p>Clang implements all of the <a 41 <p>Clang implements all of the <a
42 href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm ?csnumber=50372">ISO 42 href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm ?csnumber=50372">ISO
43 C++ 2011 standard</a>. The following table describes the Clang version 43 C++ 2011 standard</a>. The following table describes the Clang version
44 in which each feature became available.</p> 44 in which each feature became available.</p>
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 </tr> 172 </tr>
173 <tr> 173 <tr>
174 <td>Forward declarations for enums</td> 174 <td>Forward declarations for enums</td>
175 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764 .pdf">N2764</a> 175 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764 .pdf">N2764</a>
176 <br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html# 1206">DR1206</a></td> 176 <br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html# 1206">DR1206</a></td>
177 <td class="full" align="center">Clang 3.1</td> 177 <td class="full" align="center">Clang 3.1</td>
178 </tr> 178 </tr>
179 <tr> 179 <tr>
180 <td>Generalized attributes</td> 180 <td>Generalized attributes</td>
181 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761 .pdf">N2761</a></td> 181 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761 .pdf">N2761</a></td>
182 <td class="svn" align="center">Clang 3.3 <a href="#n2761">(1)</a></td> 182 <td class="svn" align="center">SVN <a href="#n2761">(1)</a></td>
183 </tr> 183 </tr>
184 <tr> 184 <tr>
185 <td>Generalized constant expressions</td> 185 <td>Generalized constant expressions</td>
186 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235 .pdf">N2235</a></td> 186 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235 .pdf">N2235</a></td>
187 <td class="full" align="center">Clang 3.1</td> 187 <td class="full" align="center">Clang 3.1</td>
188 </tr> 188 </tr>
189 <tr> 189 <tr>
190 <td>Alignment support</td> 190 <td>Alignment support</td>
191 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341 .pdf">N2341</a></td> 191 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341 .pdf">N2341</a></td>
192 <td class="svn" align="center">Clang 3.3</td> 192 <td class="svn" align="center">SVN</td>
193 </tr> 193 </tr>
194 <!-- Skipped N1627: Conditionally-support behavior --> 194 <!-- Skipped N1627: Conditionally-support behavior -->
195 <!-- Skipped N1727: Changing Undefined Behavior into Diagnosable Errors --> 195 <!-- Skipped N1727: Changing Undefined Behavior into Diagnosable Errors -->
196 <tr> 196 <tr>
197 <td>Delegating constructors</td> 197 <td>Delegating constructors</td>
198 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986 .pdf">N1986</a></td> 198 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986 .pdf">N1986</a></td>
199 <td class="full" align="center">Clang 3.0</td> 199 <td class="full" align="center">Clang 3.0</td>
200 </tr> 200 </tr>
201 <tr> 201 <tr>
202 <td>Inheriting constructors</td> 202 <td>Inheriting constructors</td>
203 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540 .htm">N2540</a></td> 203 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540 .htm">N2540</a></td>
204 <td class="svn" align="center">Clang 3.3</td> 204 <td class="svn" align="center">SVN</td>
205 </tr> 205 </tr>
206 <tr> 206 <tr>
207 <td>Explicit conversion operators</td> 207 <td>Explicit conversion operators</td>
208 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437 .pdf">N2437</a></td> 208 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437 .pdf">N2437</a></td>
209 <td class="full" align="center">Clang 3.0</td> 209 <td class="full" align="center">Clang 3.0</td>
210 </tr> 210 </tr>
211 <tr> 211 <tr>
212 <td>New character types</td> 212 <td>New character types</td>
213 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249 .html">N2249</a></td> 213 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249 .html">N2249</a></td>
214 <td class="full" align="center">Clang 2.9</td> 214 <td class="full" align="center">Clang 2.9</td>
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053 .html">N3053</a></td> 301 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053 .html">N3053</a></td>
302 <td class="full" align="center">Clang 3.0</td> 302 <td class="full" align="center">Clang 3.0</td>
303 </tr> 303 </tr>
304 304
305 <tr class="separator"> 305 <tr class="separator">
306 <th align="center" colspan="3">Concurrency</th> 306 <th align="center" colspan="3">Concurrency</th>
307 </tr> 307 </tr>
308 <tr> 308 <tr>
309 <td>Sequence points</td> 309 <td>Sequence points</td>
310 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239 .html">N2239</a></td> 310 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239 .html">N2239</a></td>
311 <td class="svn" align="center">Clang 3.3</td> 311 <td class="svn" align="center">SVN</td>
312 </tr> 312 </tr>
313 <tr> 313 <tr>
314 <td>Atomic operations</td> 314 <td>Atomic operations</td>
315 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427 .html">N2427</a></td> 315 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427 .html">N2427</a></td>
316 <td class="full" align="center">Clang 3.1</td> 316 <td class="full" align="center">Clang 3.1</td>
317 </tr> 317 </tr>
318 <tr> 318 <tr>
319 <td>Strong Compare and Exchange</td> 319 <td>Strong Compare and Exchange</td>
320 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748 .html">N2748</a></td> 320 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748 .html">N2748</a></td>
321 <td class="full" align="center">Clang 3.1 <a href="#n2748">(2)</a></td> 321 <td class="full" align="center">Clang 3.1 <a href="#n2748">(2)</a></td>
(...skipping 25 matching lines...) Expand all
347 <td class="na" align="center">N/A</td> 347 <td class="na" align="center">N/A</td>
348 </tr> 348 </tr>
349 <tr> 349 <tr>
350 <td>Allow atomics use in signal handlers</td> 350 <td>Allow atomics use in signal handlers</td>
351 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547 .htm">N2547</a></td> 351 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547 .htm">N2547</a></td>
352 <td class="full" align="center">Clang 3.1</td> 352 <td class="full" align="center">Clang 3.1</td>
353 </tr> 353 </tr>
354 <tr> 354 <tr>
355 <td>Thread-local storage</td> 355 <td>Thread-local storage</td>
356 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659 .htm">N2659</a></td> 356 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659 .htm">N2659</a></td>
357 <td class="svn" align="center">Clang 3.3</td> 357 <td class="svn" align="center">SVN</td>
358 </tr> 358 </tr>
359 <tr> 359 <tr>
360 <td>Dynamic initialization and destruction with concurrency</td> 360 <td>Dynamic initialization and destruction with concurrency</td>
361 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660 .htm">N2660</a></td> 361 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660 .htm">N2660</a></td>
362 <td class="full" align="center">Clang 2.9</td> 362 <td class="full" align="center">Clang 2.9</td>
363 </tr> 363 </tr>
364 364
365 <tr class="separator"> 365 <tr class="separator">
366 <th align="center" colspan="3">C99 Features in C++11</th> 366 <th align="center" colspan="3">C99 Features in C++11</th>
367 </tr> 367 </tr>
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 ABI-incompatible change.</span> 399 ABI-incompatible change.</span>
400 </p> 400 </p>
401 401
402 <h2 id="cxx14">C++1y implementation status</h2> 402 <h2 id="cxx14">C++1y implementation status</h2>
403 403
404 <p>Clang is introducing support for the upcoming C++ language standard, 404 <p>Clang is introducing support for the upcoming C++ language standard,
405 provisionally named C++1y. The following table describes which C++1y features 405 provisionally named C++1y. The following table describes which C++1y features
406 have been implemented in Clang and in which Clang version they became 406 have been implemented in Clang and in which Clang version they became
407 available.</p> 407 available.</p>
408 408
409 <p>You can use Clang in C++1y mode with the <code>-std=c++1y</code> option.</p> 409 <p>Note: many of the links to papers here will not work until the
410 ISO/IEC JTC1/SC22/WG21 post-Bristol mailing ships.</p>
410 411
411 <table width="689" border="1" cellspacing="0"> 412 <table width="689" border="1" cellspacing="0">
412 <tr> 413 <tr>
413 <th>Language Feature</th> 414 <th>Language Feature</th>
414 <th>C++1y Proposal</th> 415 <th>C++1y Proposal</th>
415 <th>Available in Clang?</th> 416 <th>Available in Clang?</th>
416 </tr> 417 </tr>
417 <tr> 418 <tr>
418 <td>Tweak to certain C++ contextual conversions</td> 419 <td>Tweak to certain C++ contextual conversions</td>
419 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323 .pdf">N3323</a></td> 420 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323 .pdf">N3323</a></td>
420 <td class="none" align="center">No</td> 421 <td class="none" align="center">No</td>
421 </tr> 422 </tr>
422 <tr> 423 <tr>
423 <td>Binary literals</td> 424 <td>Binary literals</td>
424 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472 .pdf">N3472</a></td> 425 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472 .pdf">N3472</a></td>
425 <td class="full" align="center">Yes</td> 426 <td class="full" align="center">Yes</td>
426 </tr> 427 </tr>
427 <tr> 428 <tr>
428 <td>decltype(auto)</td> 429 <td>decltype(auto)</td>
429 <td rowspan=2 style="vertical-align:middle"><a href="http://isocpp.org/fil es/papers/N3638.html">N3638</a></td> 430 <td rowspan=2 style="vertical-align:middle"><a href="http://www.open-std.o rg/jtc1/sc22/wg21/docs/papers/2013/n3638.html">N3638</a></td>
430 <td class="svn" align="center">Clang 3.3</td> 431 <td class="svn" align="center">SVN</td>
431 </tr> 432 </tr>
432 <tr> 433 <tr>
433 <td>Return type deduction for normal functions</td> 434 <td>Return type deduction for normal functions</td>
434 <td class="partial" align="center">Partial</td> 435 <td class="partial" align="center">Partial</td>
435 </tr> 436 </tr>
436 <tr> 437 <tr>
437 <td>Runtime-sized arrays with automatic storage duration</td> 438 <td>Runtime-sized arrays with automatic storage duration</td>
438 <td><a href="http://isocpp.org/files/papers/N3639.html">N3639</a></td> 439 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639 .html">N3639</a></td>
439 <td class="partial" align="center">Partial</td> 440 <td class="partial" align="center">Partial</td>
440 </tr> 441 </tr>
441 <tr> 442 <tr>
442 <td>Initialized lambda captures</td> 443 <td>Initialized lambda captures</td>
443 <td><a href="http://isocpp.org/files/papers/N3648.html">N3648</a></td> 444 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648 .html">N3648</a></td>
444 <td class="none" align="center">No</td> 445 <td class="none" align="center">No</td>
445 </tr> 446 </tr>
446 <tr> 447 <tr>
447 <td>Generic lambdas</td> 448 <td>Generic lambdas</td>
448 <td><a href="http://isocpp.org/files/papers/N3649.html">N3649</a></td> 449 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649 .html">N3649</a></td>
449 <td class="partial" align="center"> 450 <td class="partial" align="center">
450 No [<a href="https://github.com/faisalv/clang-glambda">WIP</a>]</td> 451 No [<a href="https://github.com/faisalv/clang-glambda">WIP</a>]</td>
451 </tr> 452 </tr>
452 <tr> 453 <tr>
453 <td>Variable templates</td> 454 <td>Variable templates</td>
454 <td><a href="http://isocpp.org/files/papers/N3651.pdf">N3651</a></td> 455 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651 .pdf">N3651</a></td>
455 <td class="none" align="center">No</td> 456 <td class="none" align="center">No</td>
456 </tr> 457 </tr>
457 <tr> 458 <tr>
458 <td>Relaxing requirements on constexpr functions</td> 459 <td>Relaxing requirements on constexpr functions</td>
459 <td><a href="http://isocpp.org/files/papers/N3652.html">N3652</a></td> 460 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652 .html">N3652</a></td>
460 <td class="partial" align="center">Partial</td> 461 <td class="partial" align="center">Partial</td>
461 </tr> 462 </tr>
462 <tr> 463 <tr>
463 <td>Member initializers and aggregates</td> 464 <td>Member initializers and aggregates</td>
464 <td><a href="http://isocpp.org/files/papers/N3653.html">N3653</a></td> 465 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653 .html">N3653</a></td>
465 <td class="svn" align="center">Clang 3.3</td> 466 <td class="svn" align="center">SVN</td>
466 </tr> 467 </tr>
467 <tr> 468 <tr>
468 <td>Clarifying memory allocation</td> 469 <td>Clarifying memory allocation</td>
469 <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n 3664.html">-->N3664<!--</a>--></td> 470 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664 .html">N3664</a></td>
470 <td class="full" align="center">Yes</td> 471 <td class="full" align="center">Yes</td>
471 </tr> 472 </tr>
472 </table> 473 </table>
473 474
474 </div> 475 </div>
475 </body> 476 </body>
476 </html> 477 </html>
OLDNEW
« no previous file with comments | « tools/clang-format/clang-format.el ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698