1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2 "http://www.w3.org/TR/html4/strict.dtd"> 3 <html> 4 <head> 5 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 6 <title>Clang - C++ and C++'0x Status</title> 7 <link type="text/css" rel="stylesheet" href="menu.css"> 8 <link type="text/css" rel="stylesheet" href="content.css"> 9 <style type="text/css"> 10 .category { background-color: #FFFFCC; text-align: center; } 11 .na { background-color: #C0C0C0; text-align: center; } 12 .broken { background-color: #C11B17 } 13 .basic { background-color: #F88017 } 14 .medium { background-color: #FDD017 } 15 .advanced { background-color: #347C17 } 16 .complete { background-color: #00FF00 } 17 </style> 18 </head> 19 <body> 20 21 <!--#include virtual="menu.html.incl"--> 22 23 <div id="content"> 24 25 <!--*************************************************************************--> 26 <h1>C++ and C++'0x Support in Clang</h1> 27 <!--*************************************************************************--> 28 <p>Last updated: $Date$</p> 29 30 <ul> 31 <li><a href="#projects">Projects Building with Clang</a></li> 32 <li><a href="#specification">Implementation Status by Section</a></li> 33 <li><a href="#cxx0x">C++0x Status</a></li> 34 </ul> 35 36 <p>Clang currently implements all of the ISO C++ 1998 standard (including 37 the defects addressed in the ISO C++ 2003 standard) except for 'export' 38 (which has been removed from the C++'0x draft). 39 The <a href="http://llvm.org/bugs/">LLVM bug tracker</a> 40 contains a Clang C++ component that tracks known Clang C++ bugs.</p> 41 42 <h2 id="projects">Projects Building with Clang</h2> 43 44 <p>Clang is now capable of compiling large C++ projects, and the following 45 table describes various projects that we have attempted to compile with 46 Clang++.</p> 47 48 <table width="689" border="1" cellspacing="0"> 49 <tr> 50 <th>Project</th> 51 <th>Status</th> 52 <th>Last Tested</th> 53 <th>Tracking Bug</th> 54 </tr> 55 <tr> 56 <td><a href="http://clang.llvm.org">Clang</a> and <a href="http://llvm.org">LLVM</a></td> 57 <td>Successful self-hosting achieved</td> 58 <td>Continually</td> 59 <td></td> 60 </tr> 61 <tr> 62 <td><a href="http://www.cmake.org">CMake</a></td> 63 <td>Compiles, passes regression tests (debug build)</td> 64 <td>February 9, 2010</td> 65 <td></td> 66 </tr> 67 <tr> 68 <td><a href="http://www.boost.org">Boost</a></td> 69 <td><a href="http://blog.llvm.org/2010/05/clang-builds-boost.html">Compiles 70 and passes regression tests</a> on Darwin/X86-64.</td> 71 <td>May 20, 2010</td> 72 <td><a href="http://llvm.org/bugs/show_bug.cgi?id=6023"><del>PR6023</del></a></td> 73 </tr> 74 <tr> 75 <td><a href="http://qt.nokia.com">Qt</a></td> 76 <td>Partially compiles; miscompilation of uic prevents complete compilation, qmake works, some small examples also.</td> 77 <td>February 9, 2010</td> 78 <td><a href="http://llvm.org/bugs/show_bug.cgi?id=5881">PR5881</a></td> 79 </tr> 80 </table> 81 82 <h2 id="cxx0x">C++0x Implementation status</h2> 83 84 <p>Clang's development effort is focused primarily on fixing bugs in the current 85 ISO C++ standard (1998/2003). This section tracks the status of various C++0x 86 features.</p> 87 88 <p>You can use clang in C++0x mode either 89 with <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++. 90 libstdc++-4.4 requires <a href="libstdc++4.4-clang0x.patch">a patch</a> to work 91 with clang; other versions have not been tested.</p> 92 93 94 <h2 id="specification">Implementation Status by Feature</h2> 95 96 97 <!-- Within this table: The colors we're using to color-code our level 98 of support for a given section: 99 100 White (no background): not considered/tested. 101 #C11B17: Broken. 102 #F88017: Some useful examples work 103 #FDD017: Many examples work 104 #347C17: Nearly everything works 105 #00FF00 + check mark: Implementation complete! 106 --> 107 108 <p>The following table is used to help track our implementation 109 progress toward implementing the complete C++'0x standard. We use a 110 simple, somewhat arbitrary color-coding scheme to describe the 111 relative completeness of features:</p> 112 113 <table width="689" border="1" cellspacing="0"> 114 <tr> 115 <th>Not started/not evaluated</th> 116 <th>Not Applicable</th> 117 <th>Broken</th> 118 <th>Some examples work</th> 119 <th>Many examples work</th> 120 <th>Nearly everything works</th> 121 <th>Complete</th> 122 <!-- 123 <th>Complete (with tests for each paragraph)</th> 124 --> 125 </tr> 126 <tr> 127 <td></td> 128 <td class="na">N/A</td> 129 <td class="broken"></td> 130 <td class="basic"></td> 131 <td class="medium"></td> 132 <td class="advanced"></td> 133 <td class="complete">rXXXXXX</td> 134 <!-- 135 <td class="complete" align="center">✓</td> 136 --> 137 </tr> 138 </table> 139 140 <p>In addition, boxes marked with ✓ have complete and passing tests. 141 Similarly, boxes marked with ✗ have complete tests, some of which 142 are failing, and a <b>?</b> indicates partial tests while not making any 143 statement about passing status.</p> 144 145 <p>A feature is "complete" when the appropriate Clang component (Parse, AST, 146 Sema, CodeGen) implements the behavior described in all of the 147 paragraphs in the relevant C++'0x draft standard. The major 148 components are:</p> 149 150 <dl> 151 <dt>Parse</dt> 152 <dd>Clang is able to parse the grammar of this feature (or the grammar 153 described by this section), but does not necessarily do anything with the 154 parsed result. Use Clang's <code>-fsyntax-only</code> option to parse C++ 155 programs.</dd> 156 157 <dt>AST</dt> 158 <dd>Clang builds an abstract syntax tree (AST) for the feature, but does not 159 necessarily perform any type-checking. Use Clang's <code>-ast-print</code> 160 option to print the resulting ASTs.</dd> 161 162 <dt>Sema</dt> 163 <dd>Clang parses and type-checks this feature and provides a well-formed AST 164 annotated with types. Use Clang's <code>-fsyntax-only</code> to type-check 165 code.</dd> 166 167 <dt>CodeGen</dt> 168 <dd>Clang parses, type-checks, and generates code for this feature, allowing 169 one to compile and execute programs.</dd> 170 </dl> 171 172 <p>Updates to this table are welcome! Tests for the various features are also 173 welcome!</p> 174 175 <table width="689" border="1" cellspacing="0"> 176 <tr><td colspan="7" align="center" bgcolor="#ffddaa">C++0x Features (current draft report <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3291.pdf">here</a>)</td> 177 </tr> 178 <tr> 179 <th>Feature</th> 180 <th>Parse</th> 181 <th>AST</th> 182 <th>Sema</th> 183 <th>CodeGen</th> 184 <th>Standard Sections</th> 185 <th>Notes</th> 186 </tr> 187 <tr><td colspan="7" class="category">Control Flow Modifications</td></tr> 188 <tr> 189 <td>Range-based for loop</td> 190 <td class="complete" align="center">✓</td> 191 <td class="complete" align="center">✓</td> 192 <td class="complete" align="center">✓</td> 193 <td class="complete" align="center">✓</td> 194 <td>6.5.4</td> 195 <td><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2243.html">N2243</a> 196 <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2011/n3271.htm">N3271</a></td> 197 </tr> 198 199 <tr><td colspan="7" class="category">Type System Modifications</td></tr> 200 <tr> 201 <td>rvalue references</td> 202 <td class="complete" align="center"></td> 203 <td class="complete" align="center"></td> 204 <td class="complete" align="center"></td> 205 <td class="complete"></td> 206 <td>8.3.2</td> 207 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html">N2118</a>, 208 <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2831.html">N2831</a> <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm">N2439</a> 209 </td> 210 </tr> 211 <tr> 212 <td>decltype</td> 213 <td class="complete" align="center">✓</td> 214 <td class="complete" align="center">✓</td> 215 <td class="advanced" align="center"></td> 216 <td class="advanced" align="center"></td> 217 <td>7.1.6.2</td> 218 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf">N2343</a> 219 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1478.pdf">N1478</a> 220 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1978.pdf">N1978</a> 221 </td> 222 </tr> 223 <tr> 224 <td>auto type deduction</td> 225 <td class="complete" align="center">✓</td> 226 <td class="complete" align="center">✓</td> 227 <td class="complete" align="center">✓</td> 228 <td class="complete" align="center">✓</td> 229 <td>7.1.6.2, 7.1.6.4</td> 230 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf">N1984</a></td> 231 </tr> 232 <tr> 233 <td>nullptr</td> 234 <td class="complete" align="center"></td> 235 <td class="complete" align="center"></td> 236 <td class="medium" align="center"></td> 237 <td class="broken"></td> 238 <td>2.14.7, 4.10, 4.11</td> 239 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf">N2431</a> 240 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1488.pdf">N1488</a> 241 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2214.pdf">N2214</a> 242 </td> 243 </tr> 244 <tr> 245 <td>enum classes</td> 246 <td class="complete"></td> 247 <td class="advanced"></td> 248 <td class="advanced"></td> 249 <td></td> 250 <td>7.2</td> 251 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1513.pdf">N1513</a> 252 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf">N2347</a> 253 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2499.pdf">N2499</a> 254 Includes forward declaration capability 255 </td> 256 </tr> 257 <tr> 258 <td>long long</td> 259 <td class="complete"></td> 260 <td class="complete"></td> 261 <td class="complete"></td> 262 <td class="complete"></td> 263 <td>3.9.1</td> 264 <td>C99 265 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf">N1811</a> 266 </td> 267 </tr> 268 <tr> 269 <td>constexpr</td> 270 <td></td> 271 <td></td> 272 <td></td> 273 <td></td> 274 <td>3.6.2, 3.9, 5.19, 7.1.5</td> 275 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1521.pdf">N1521</a> 276 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">N2235</a> 277 </td> 278 </tr> 279 <tr> 280 <td>char16_t/char32_t</td> 281 <td class="medium"></td> 282 <td class="medium"></td> 283 <td class="medium"></td> 284 <td class="medium"></td> 285 <td></td> 286 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html">N2249</a></td> 287 </tr> 288 <tr> 289 <td>Unicode string literal types</td> 290 <td></td> 291 <td></td> 292 <td></td> 293 <td></td> 294 <td>2.14.3, 2.14.5</td> 295 <td></td> 296 </tr> 297 <tr> 298 <td>Raw string literal types</td> 299 <td></td> 300 <td></td> 301 <td></td> 302 <td></td> 303 <td>2.14.5</td> 304 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2053.html">N2053</a> 305 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.html">N2442</a> 306 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2378.pdf">N2378</a> 307 </td> 308 </tr> 309 <tr> 310 <td>user-defined literal types</td> 311 <td></td> 312 <td></td> 313 <td></td> 314 <td></td> 315 <td>2.14.8</td> 316 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2378.pdf">N2378</a></td> 317 </tr> 318 <tr> 319 <td>POD definition changes</td> 320 <td></td> 321 <td></td> 322 <td></td> 323 <td></td> 324 <td>3.9, 9</td> 325 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2294.html">N2294</a></td> 326 </tr> 327 <tr> 328 <td>Unrestricted unions</td> 329 <td></td> 330 <td></td> 331 <td></td> 332 <td></td> 333 <td>9.5</td> 334 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf">N2544</a></td> 335 </tr> 336 <tr> 337 <td>Tighter narrowing rules</td> 338 <td></td> 339 <td></td> 340 <td></td> 341 <td></td> 342 <td>8.5.4</td> 343 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1890.pdf">N1890</a> 344 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2215.pdf">N2215</a> 345 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2640.pdf">N2640</a> 346 </td> 347 </tr> 348 <tr><td colspan="7" class="category">Class Modifications</td></tr> 349 <tr> 350 <td>delegating constructors</td> 351 <td class="complete"></td> 352 <td class="complete"></td> 353 <td class="complete"></td> 354 <td class="complete"></td> 355 <td>12.6.2</td> 356 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986">N1986</a></td> 357 </tr> 358 <tr> 359 <td>inheriting constructors</td> 360 <td></td> 361 <td></td> 362 <td></td> 363 <td></td> 364 <td>12.9</td> 365 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1890.pdf">N1890</a> 366 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1898.pdf">N1898</a> 367 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2512.html">N2512</a> 368 </td> 369 </tr> 370 <tr> 371 <td>In-declaration member initialization</td> 372 <td></td> 373 <td></td> 374 <td></td> 375 <td></td> 376 <td></td> 377 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2628.html">N2628</a></td> 378 </tr> 379 <tr> 380 <td>Changes to implicitly generated methods</td> 381 <td></td> 382 <td></td> 383 <td></td> 384 <td></td> 385 <td></td> 386 <td>Includes implicit generation of move operations</td> 387 </tr> 388 <tr> 389 <td>defaulted methods</td> 390 <td></td> 391 <td></td> 392 <td></td> 393 <td></td> 394 <td></td> 395 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1717.pdf">N1717</a> 396 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2326.html">N2326</a> 397 </td> 398 </tr> 399 <tr> 400 <td>destructor defaults to noexcept</td> 401 <td></td> 402 <td></td> 403 <td></td> 404 <td></td> 405 <td></td> 406 <td></td> 407 </tr> 408 <tr> 409 <td>sizeof on members without object instance</td> 410 <td></td> 411 <td></td> 412 <td></td> 413 <td></td> 414 <td></td> 415 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2150.html">N2150</a></td> 416 </tr> 417 <tr> 418 <td>virtual function safety modifications</td> 419 <td></td> 420 <td></td> 421 <td></td> 422 <td></td> 423 <td></td> 424 <td></td> 425 </tr> 426 <tr> 427 <td>Explicit conversion operators</td> 428 <td class="complete" align="center"></td> 429 <td class="basic" align="center"></td> 430 <td class="basic" align="center"></td> 431 <td class="broken"></td> 432 <td>12.3</td> 433 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf">N2437</a> 434 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2333.html">N2333</a> 435 No name mangling; ASTs don't contain calls to conversion operators</td> 436 </tr> 437 <tr><td colspan="7" class="category">Template Modifications</td></tr> 438 <tr> 439 <td>Right angle brackets</td> 440 <td class="complete" align="center"></td> 441 <td class="na" align="center">N/A</td> 442 <td class="na" align="center">N/A</td> 443 <td class="na">N/A</td> 444 <td></td> 445 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html">N1757</a></td> 446 </tr> 447 <tr> 448 <td>variadic templates</td> 449 <td class="complete" align="center"></td> 450 <td class="complete" align="center"></td> 451 <td class="complete" align="center"></td> 452 <td class="complete" align="center"></td> 453 <td>14.6.3</td> 454 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2080.pdf">N2080</a> 455 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2087.pdf">N2087</a> 456 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf">N2242</a> 457 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2488.pdf">N2488</a> 458 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf">N2555</a> 459 </td> 460 </tr> 461 <tr> 462 <td>template aliases</td> 463 <td class="complete" align="center">✓</td> 464 <td class="complete" align="center">✓</td> 465 <td class="complete" align="center">✓</td> 466 <td class="complete" align="center">✓</td> 467 <td>7.1.3, 14.6.7</td> 468 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1489.pdf">N1489</a> 469 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf">N2258</a> 470 </td> 471 </tr> 472 <tr> 473 <td>Removal of export</td> 474 <td class="complete"></td> 475 <td class="na">N/A</td> 476 <td class="na">N/A</td> 477 <td class="na">N/A</td> 478 <td></td> 479 <td>This was never implemented in C++03</td> 480 </tr> 481 <tr> 482 <td>extern templates</td> 483 <td class="complete"></td> 484 <td class="complete"></td> 485 <td class="complete"></td> 486 <td class="complete"></td> 487 <td>14.8.2</td> 488 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm">N1987</a></td> 489 </tr> 490 <tr> 491 <td>Local classes as template parameters</td> 492 <td></td> 493 <td></td> 494 <td></td> 495 <td></td> 496 <td></td> 497 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2402.pdf">N2402</a> 498 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">N2657</a> 499 </td> 500 </tr> 501 <tr><td colspan="7" class="category">Exception Modifications</td></tr> 502 <tr> 503 <td>Deprecation of exception specifications</td> 504 <td></td> 505 <td></td> 506 <td></td> 507 <td></td> 508 <td>15.4</td> 509 <td></td> 510 </tr> 511 <tr> 512 <td>noexcept</td> 513 <td class="complete" align="center">✓</td> 514 <td class="complete" align="center">✓</td> 515 <td class="complete" align="center">✓</td> 516 <td class="na">N/A</td> 517 <td>5.3.7, 15.4</td> 518 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html">N3050</a></td> 519 </tr> 520 <tr><td colspan="7" class="category">Preprocessor Modifications</td></tr> 521 <tr> 522 <td>__STDC_HOSTED__</td> 523 <td class="complete"></td> 524 <td class="na">N/A</td> 525 <td class="na">N/A</td> 526 <td class="na">N/A</td> 527 <td>16.8</td> 528 <td>C99 529 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1568.htm">N1568</a> 530 </td> 531 </tr> 532 <tr> 533 <td>_Pragma</td> 534 <td class="complete"></td> 535 <td class="na">N/A</td> 536 <td class="na">N/A</td> 537 <td class="na">N/A</td> 538 <td>16.9</td> 539 <td>C99 540 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1568.htm">N1568</a> 541 </td> 542 </tr> 543 <tr> 544 <td>Variable argument macros</td> 545 <td class="complete"></td> 546 <td class="na">N/A</td> 547 <td class="na">N/A</td> 548 <td class="na">N/A</td> 549 <td>16.3</td> 550 <td>C99 551 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1568.htm">N1568</a> 552 </td> 553 </tr> 554 <tr> 555 <td>Empty macro arguments</td> 556 <td class="complete"></td> 557 <td class="na">N/A</td> 558 <td class="na">N/A</td> 559 <td class="na">N/A</td> 560 <td>16.3</td> 561 <td>C99 562 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1568.htm">N1568</a> 563 </td> 564 </tr> 565 <tr> 566 <td>__func__</td> 567 <td class="complete"></td> 568 <td class="na">N/A</td> 569 <td class="na">N/A</td> 570 <td class="na">N/A</td> 571 <td>8.4.1</td> 572 <td>C99 573 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1568.htm">N1568</a> 574 </td> 575 </tr> 576 <tr> 577 <td>__cplusplus</td> 578 <td class="complete"></td> 579 <td class="na">N/A</td> 580 <td class="na">N/A</td> 581 <td class="na">N/A</td> 582 <td>16.8</td> 583 <td></td> 584 </tr> 585 <tr><td colspan="7" class="category">Things Completely New</td></tr> 586 <tr> 587 <td>Late-specified return type</td> 588 <td class="complete" align="center">✓</td> 589 <td class="complete" align="center">✓</td> 590 <td class="complete" align="center">✓</td> 591 <td class="na">N/A</td> 592 <td>8.3.5</td> 593 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2445.html">N2445</a></td> 594 </tr> 595 <tr> 596 <td>lambda expressions</td> 597 <td></td> 598 <td></td> 599 <td></td> 600 <td></td> 601 <td>5.1.2</td> 602 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1968.htm">N1968</a> 603 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2550.pdf">N2550</a> 604 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2859.pdf">N2859</a> 605 </td> 606 </tr> 607 <tr> 608 <td>Uniform initializers </td> 609 <td></td> 610 <td></td> 611 <td></td> 612 <td></td> 613 <td>12.6</td> 614 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2215.pdf">N2215</a> 615 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2640.pdf">N2640</a> 616 </td> 617 </tr> 618 <tr> 619 <td>Memory model</td> 620 <td></td> 621 <td></td> 622 <td></td> 623 <td></td> 624 <td>1.7</td> 625 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2556.html">N2556</a></td> 626 </tr> 627 <tr><td colspan="7" class="category">Miscellania</td></tr> 628 <tr> 629 <td>Standard attribute syntax</td> 630 <td></td> 631 <td></td> 632 <td></td> 633 <td></td> 634 <td></td> 635 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2418.pdf">N2418</a></td> 636 </tr> 637 <tr> 638 <td>alignment control</td> 639 <td></td> 640 <td></td> 641 <td></td> 642 <td></td> 643 <td></td> 644 <td></td> 645 </tr> 646 <tr> 647 <td>Deleted functions</td> 648 <td class="complete" align="center"></td> 649 <td class="complete" align="center"></td> 650 <td class="medium" align="center"></td> 651 <td class="na">N/A</td> 652 <td>8.4.3</td> 653 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2326.htm">N2326</a></br> 654 This also includes class methods.</td> 655 </tr> 656 <tr> 657 <td>static_assert</td> 658 <td class="complete" align="center"></td> 659 <td class="complete" align="center"></td> 660 <td class="advanced" align="center"></td> 661 <td class="na">N/A</td> 662 <td>7</td> 663 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1381.htm">N1381</a> 664 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.pdf">N1720</a> 665 </td> 666 </tr> 667 <tr> 668 <td>Inline namespaces</td> 669 <td class="complete" align="center">✓</td> 670 <td class="complete" align="center">✓</td> 671 <td class="complete" align="center">✓</td> 672 <td class="complete" align="center">N/A</td> 673 <td>7.3.1</td> 674 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm">N2535</a></td> 675 </tr> 676 <tr> 677 <td>thread_local storage</td> 678 <td></td> 679 <td></td> 680 <td></td> 681 <td></td> 682 <td>3.7.2, 7.1.1</td> 683 <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">N2660</a></td> 684 </tr> 685 <tr><td colspan="7" class="category">Standard Library Modifications, see <a href="http://libcxx.llvm.org/index.html">libc++</a> or <a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.200x">libstdc++</a> or <a href="http://blogs.msdn.com/b/vcblog/archive/2010/07/02/video-introduction-to-the-stl-part-1.aspx">VC++ 2010</a></td></tr> 686 </table> 687 <br /> 688 </div> 689 </body> 690 </html> 691