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