blob: 7d87303c28dda417f54d926e8f0d1d1b51740a8f [file] [log] [blame]
Cedric Venet3d658642009-02-14 20:20:19 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3<html>
4<head>
Gabor Greif70f2a042009-02-25 15:22:45 +00005 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Cedric Venet3d658642009-02-14 20:20:19 +00006 <title>Clang - C++ Support</title>
Gabor Greif70f2a042009-02-25 15:22:45 +00007 <link type="text/css" rel="stylesheet" href="menu.css">
8 <link type="text/css" rel="stylesheet" href="content.css">
Cedric Venet3d658642009-02-14 20:20:19 +00009 <style type="text/css">
10 .na { background-color: #C0C0C0 }
11 .broken { background-color: #C11B17 }
12 .basic { background-color: #F88017 }
13 .medium { background-color: #FDD017 }
14 .advanced { background-color: #347C17 }
15 .complete { background-color: #00FF00 }
16 </style>
17</head>
18<body>
19
20<!--#include virtual="menu.html.incl"-->
21
22<div id="content">
23
24<!--*************************************************************************-->
25<h1>C++ Support in Clang</h1>
26<!--*************************************************************************-->
27
28<p>
29This page tracks the status of C++ support in Clang.<br>
Douglas Gregor33aa5192009-03-20 20:39:57 +000030Currently most of the C++ features are missing; here you can find features that are at least partially supported in Clang. If you are looking to <a href="get_involved.html">get involved with Clang development</a> to help work on support for C++, please also look at our <a href="OpenProjects.html">Open Projects</a> page for some specific ideas.</p>
Cedric Venet3d658642009-02-14 20:20:19 +000031
32
33<!-- Within this table: The colors we're using to color-code our level
34of support for a given section:
35
36 White (no background): not considered/tested.
37 #C11B17: Broken.
38 #F88017: Some useful examples work
39 #FDD017: Many examples work
40 #347C17: Nearly everything works
41 #00FF00 + check mark: Implementation complete!
42 -->
43
44<p>The following table is used to help track our implementation
45 progress toward implementing the complete C++03 standard. We use a
46 simple, somewhat arbitrary color-coding scheme to describe the
47 relative completeness of features by section:</p>
48
49<table width="689" border="1" cellspacing="0">
50 <tr>
51 <th>Not started/not evaluated</th>
52 <th>Not Applicable</th>
53 <th>Broken</th>
54 <th>Some examples work</th>
55 <th>Many examples work</th>
56 <th>Nearly everything works</th>
57 <th>Complete!</th>
58 </tr>
59 <tr>
60 <td></td>
61 <td class="na">N/A</td>
62 <td class="broken"></td>
63 <td class="basic"></td>
64 <td class="medium"></td>
65 <td class="advanced"></td>
66 <td class="complete" align="center">&#x2713;</td>
67 </tr>
68</table>
69
70<p>A feature is "complete" when the appropriate Clang component (Parse, AST,
71Sema, CodeGen) implements the behavior described in all of the
72paragraphs in the relevant C++ standard. Note that many C++ features are
73actually described in several different sections within the standard. The major components are:</p>
74
75<dl>
76 <dt>Parse</dt>
77 <dd>Clang is able to parse the grammar of this feature (or the grammar described by this section), but does not necessarily do anything with the parsed result. Use Clang's <code>-fsyntax-only</code> option to parse C++ programs.</dd>
78
79 <dt>AST</dt>
80 <dd>Clang builds an abstract syntax tree (AST) for the feature, but does not necessarily perform any type-checking. Use Clang's <code>-ast-print</code> option to print the resulting ASTs.</dd>
81
82 <dt>Sema</dt>
83 <dd>Clang parses and type-checks this feature and provides a well-formed AST annotated with types. Use Clang's <code>-fsyntax-only</code> to type-check code.</dd>
84
85 <dt>CodeGen</dt>
86 <dd>Clang parses, type-checks, and generates code for this feature, allowing one to compile and execute programs.</dd>
87</dl>
88
89<p>Updates to this table are welcome! Since Clang already supports
90much of C, and therefore much C++, many of the currently-white cells
91could be filled in. If you wish to do so, please compare Clang's
92implementation against the C++ standard and provide a patch that
93updates the table accordingly. Tests for the various features are also
94welcome!</p>
95
96<table width="689" border="1" cellspacing="0">
97 <tr>
98 <th>Section</th>
99 <th>Parse</th>
100 <th>AST</th>
101 <th>Sema</th>
102 <th>CodeGen</th>
103 <th>Notes</th>
104 </tr>
105<tr>
106 <td>2 [lex]</td>
107 <td class="complete" align="center">&#x2713;</td>
108 <td class="na">N/A</td>
109 <td class="na">N/A</td>
110 <td class="na">N/A</td>
111 <td></td>
112</tr>
113<tr>
114 <td>&nbsp;&nbsp;2.1 [lex.phases]</td>
115 <td class="advanced" align="center"></td>
116 <td class="na">N/A</td>
117 <td class="na">N/A</td>
118 <td class="na">N/A</td>
119 <td>Extended characters aren't handled.</td>
120</tr>
121<tr>
122 <td>&nbsp;&nbsp;2.2 [lex.charset]</td>
123 <td class="basic"></td>
124 <td class="na">N/A</td>
125 <td class="na">N/A</td>
126 <td class="na">N/A</td>
127 <td>No support for extended characters.</td>
128</tr>
129<tr>
130 <td>&nbsp;&nbsp;2.3 [lex.trigraph]</td>
131 <td class="complete" align="center">&#x2713;</td>
132 <td class="na">N/A</td>
133 <td class="na">N/A</td>
134 <td class="na">N/A</td>
135 <td></td>
136</tr>
137<tr>
138 <td>&nbsp;&nbsp;2.4 [lex.pptoken]</td>
139 <td class="complete" align="center">&#x2713;</td>
140 <td class="na">N/A</td>
141 <td class="na">N/A</td>
142 <td class="na">N/A</td>
143 <td></td>
144</tr>
145<tr>
146 <td>&nbsp;&nbsp;2.5 [lex.digraph]</td>
147 <td class="complete" align="center">&#x2713;</td>
148 <td class="na">N/A</td>
149 <td class="na">N/A</td>
150 <td class="na">N/A</td>
151 <td></td>
152</tr>
153<tr>
154 <td>&nbsp;&nbsp;2.6 [lex.token]</td>
155 <td class="complete" align="center">&#x2713;</td>
156 <td class="na">N/A</td>
157 <td class="na">N/A</td>
158 <td class="na">N/A</td>
159 <td></td>
160</tr>
161<tr>
162 <td>&nbsp;&nbsp;2.7 [lex.comment]</td>
163 <td class="advanced" align="center"></td>
164 <td></td>
165 <td class="na">N/A</td>
166 <td class="na">N/A</td>
167 <td>NDR "form feed or vtab in comment" is not diagnosed. No AST representation of comments.</td>
168</tr>
169<tr>
170 <td>&nbsp;&nbsp;2.8 [lex.header]</td>
171 <td class="complete" align="center">&#x2713;</td>
172 <td class="na">N/A</td>
173 <td class="na">N/A</td>
174 <td class="na">N/A</td>
175 <td></td>
176</tr>
177<tr>
178 <td>&nbsp;&nbsp;2.9 [lex.ppnumber]</td>
179 <td class="complete" align="center">&#x2713;</td>
180 <td class="na">N/A</td>
181 <td class="na">N/A</td>
182 <td class="na">N/A</td>
183 <td></td>
184</tr>
185<tr>
186 <td>&nbsp;&nbsp;2.10 [lex.name]</td>
187 <td class="advanced" align="center"></td>
188 <td class="na">N/A</td>
189 <td class="na">N/A</td>
190 <td class="na">N/A</td>
191 <td>No support for extended characters</td>
192</tr>
193<tr>
194 <td>&nbsp;&nbsp;2.11 [lex.key]</td>
195 <td class="complete" align="center">&#x2713;</td>
196 <td class="na">N/A</td>
197 <td class="na">N/A</td>
198 <td class="na">N/A</td>
199 <td></td>
200</tr>
201<tr>
202 <td>&nbsp;&nbsp;2.12 [lex.operators]</td>
203 <td class="complete" align="center">&#x2713;</td>
204 <td class="na">N/A</td>
205 <td class="na">N/A</td>
206 <td class="na">N/A</td>
207 <td></td>
208</tr>
209<tr>
210 <td>&nbsp;&nbsp;2.13 [lex.literal]</td>
211 <td class="complete" align="center">&#x2713;</td>
212 <td class="na">N/A</td>
213 <td class="na">N/A</td>
214 <td class="na">N/A</td>
215 <td></td>
216</tr>
217<tr>
218 <td>&nbsp;&nbsp;&nbsp;&nbsp;2.13.1 [lex.icon]</td>
219 <td class="complete" align="center">&#x2713;</td>
220 <td class="na">N/A</td>
221 <td class="na">N/A</td>
222 <td class="na">N/A</td>
223 <td></td>
224</tr>
225<tr>
226 <td>&nbsp;&nbsp;&nbsp;&nbsp;2.13.2 [lex.ccon]</td>
227 <td class="advanced" align="center"></td>
228 <td class="na">N/A</td>
229 <td class="na">N/A</td>
230 <td class="na">N/A</td>
231 <td>Poor support for extended characters</td>
232</tr>
233<tr>
234 <td>&nbsp;&nbsp;&nbsp;&nbsp;2.13.3 [lex.fcon]</td>
235 <td class="complete" align="center">&#x2713;</td>
236 <td class="na">N/A</td>
237 <td class="na">N/A</td>
238 <td class="na">N/A</td>
239 <td></td>
240</tr>
241<tr>
242 <td>&nbsp;&nbsp;&nbsp;&nbsp;2.13.4 [lex.string]</td>
243 <td class="advanced" align="center"></td>
244 <td class="na">N/A</td>
245 <td class="na">N/A</td>
246 <td class="na">N/A</td>
247 <td>Poor support for extended characters</td>
248</tr>
249<tr>
250 <td>&nbsp;&nbsp;&nbsp;&nbsp;2.13.5 [lex.bool]</td>
251 <td class="complete" align="center">&#x2713;</td>
252 <td class="na">N/A</td>
253 <td class="na">N/A</td>
254 <td class="na">N/A</td>
255 <td></td>
256</tr>
257<tr>
258<td>3 [basic]</td>
259 <td class="na">N/A</td>
260 <td class="na">N/A</td>
261 <td class="na">N/A</td>
262 <td class="na">N/A</td>
263 <td></td>
264</tr>
265<tr>
266 <td>&nbsp;&nbsp;3.1 [basic.def]</td>
267 <td></td>
268 <td></td>
269 <td></td>
270 <td class="na">N/A</td>
271 <td></td>
272</tr>
273<tr>
274 <td>&nbsp;&nbsp;3.2 [basic.def.odr]</td>
275 <td></td>
276 <td></td>
277 <td></td>
278 <td></td>
279 <td></td>
280</tr>
281<tr>
282 <td>&nbsp;&nbsp;3.3 [basic.scope]</td>
283 <td class="na">N/A</td>
284 <td class="na">N/A</td>
285 <td class="complete" align="center">&#x2713;</td>
286 <td class="na">N/A</td>
287 <td></td>
288</tr>
289<tr>
290 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.1 [basic.scope.pdecl]</td>
291 <td class="na">N/A</td>
292 <td class="na">N/A</td>
293 <td class="advanced"></td>
294 <td class="na">N/A</td>
295 <td>See PR3184</td>
296</tr>
297<tr>
298 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.2 [basic.scope.local]</td>
299 <td class="na">N/A</td>
300 <td class="na">N/A</td>
301 <td class="advanced"></td>
302 <td class="na">N/A</td>
303 <td>try-catch not implemented</td>
304</tr>
305<tr>
306 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.3 [basic.scope.proto]</td>
307 <td class="na">N/A</td>
308 <td class="na">N/A</td>
309 <td class="complete" align="center">&#x2713;</td>
310 <td class="na">N/A</td>
311 <td></td>
312</tr>
313<tr>
314 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.4 [basic.funscope]</td>
315 <td class="na">N/A</td>
316 <td class="na">N/A</td>
317 <td class="complete" align="center">&#x2713;</td>
318 <td class="na">N/A</td>
319 <td></td>
320</tr>
321<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.5 [basic.scope.namespace]</td><td></td><td></td><td></td><td></td><td></td></tr>
322<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.6 [basic.scope.class]</td><td></td><td></td><td></td><td></td><td></td></tr>
323<tr>
324 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.3.7 [basic.scope.hiding]</td>
325 <td class="na">N/A</td>
326 <td class="na">N/A</td>
327 <td class="complete" align="center">&#x2713;</td>
328 <td class="na">N/A</td>
329 <td></td>
330</tr>
331<tr>
332 <td>&nbsp;&nbsp;3.4 [basic.lookup]</td>
333 <td class="na">N/A</td>
334 <td class="na">N/A</td>
335 <td class="complete" align="center">&#x2713;</td>
336 <td class="na">N/A</td>
337 <td></td>
338</tr>
339<tr>
340 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.4.1 [basic.lookup.unqual]</td>
341 <td class="na">N/A</td>
342 <td class="na">N/A</td>
343 <td class="medium"></td>
344 <td class="na">N/A</td>
345 <td>Many cases beyond simple global and function-local lookup don't work</td>
346</tr>
347<tr>
348 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.4.2 [basic.lookup.argdep]</td>
349 <td class="na">N/A</td>
350 <td class="advanced" align="center"></td>
351 <td class="advanced" align="center"></td>
352 <td class="na">N/A</td>
353 <td>Missing support for templates, friend functions.</td>
354</tr>
355<tr>
356 <td>&nbsp;&nbsp;&nbsp;&nbsp;3.4.3 [basic.lookup.qual]</td>
357 <td class="na">N/A</td>
358 <td class="na">N/A</td>
359 <td class="advanced"></td>
360 <td class="na">N/A</td>
361 <td></td>
362</tr>
363<tr>
364 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.3.1 [class.qual]</td>
365 <td class="na">N/A</td>
366 <td class="na">N/A</td>
367 <td class="advanced"></td>
368 <td class="na">N/A</td>
369 <td></td>
370</tr>
371<tr>
372 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.3.2 [namespace.qual]</td>
373 <td class="na">N/A</td>
374 <td class="na">N/A</td>
375 <td class="advanced"></td>
376 <td class="na">N/A</td>
377 <td></td>
378</tr>
379<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.4.4 [basic.lookup.elab]</td><td></td><td></td><td></td><td></td><td></td></tr>
380<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.4.5 [basic.lookup.classref]</td><td></td><td></td><td></td><td></td><td></td></tr>
381<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.4.6 [basic.lookup.udir]</td><td></td><td></td><td></td><td></td><td></td></tr>
382<tr><td>&nbsp;&nbsp;3.5 [basic.link]</td><td></td><td></td><td></td><td></td><td></td></tr>
383<tr><td>&nbsp;&nbsp;3.6 [basic.start]</td><td></td><td></td><td></td><td></td><td></td></tr>
384<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.6.1 [basic.start.main]</td><td></td><td></td><td></td><td></td><td></td></tr>
385<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.6.2 [basic.start.init]</td><td></td><td></td><td></td><td></td><td></td></tr>
386<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.6.3 [basic.start.term]</td><td></td><td></td><td></td><td></td><td></td></tr>
387<tr><td>&nbsp;&nbsp;3.7 [basic.stc]</td><td></td><td></td><td></td><td></td><td></td></tr>
388<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.7.1 [basic.stc.static]</td><td></td><td></td><td></td><td></td><td></td></tr>
389<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.7.2 [basic.stc.auto]</td><td></td><td></td><td></td><td></td><td></td></tr>
390<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.7.3 [basic.stc.dynamic]</td><td></td><td></td><td></td><td></td><td></td></tr>
391<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7.3.1 [basic.stc.dynamic.allocation]</td><td></td><td></td><td></td><td></td><td></td></tr>
392<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7.3.2 [basic.stc.dynamic.deallocation]</td><td></td><td></td><td></td><td></td><td></td></tr>
393<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.7.4 [basic.stc.inherit]</td><td></td><td></td><td></td><td></td><td></td></tr>
394<tr><td>&nbsp;&nbsp;3.8 [basic.life]</td><td></td><td></td><td></td><td></td><td></td></tr>
395<tr><td>&nbsp;&nbsp;3.9 [basic.types]</td><td></td><td></td><td></td><td></td><td></td></tr>
396<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.9.1 [basic.fundamental]</td><td></td><td></td><td></td><td></td><td></td></tr>
397<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.9.2 [basic.compound]</td><td></td><td></td><td></td><td></td><td></td></tr>
398<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;3.9.3 [basic.type.qualifier]</td><td></td><td></td><td></td><td></td><td></td></tr>
399<tr><td>&nbsp;&nbsp;3.10 [basic.lval]</td><td></td><td></td><td></td><td></td><td></td></tr>
400<tr>
401 <td>4 [conv]</td>
402 <td class="complete" align="center">&#x2713;</td>
403 <td class="complete" align="center">&#x2713;</td>
404 <td class="complete" align="center">&#x2713;</td>
405 <td></td>
406 <td></td>
407</tr>
408<tr>
409 <td>&nbsp;&nbsp;4.1 [conv.lval]</td>
410 <td class="complete" align="center">&#x2713;</td>
411 <td class="complete" align="center">&#x2713;</td>
412 <td class="advanced" align="center"></td> <!-- p2: sizeof -->
413 <td></td>
414 <td></td>
415</tr>
416<tr>
417 <td>&nbsp;&nbsp;4.2 [conv.array]</td>
418 <td class="complete" align="center">&#x2713;</td>
419 <td class="complete" align="center">&#x2713;</td>
420 <td class="complete" align="center">&#x2713;</td>
421 <td></td>
422 <td></td>
423</tr>
424<tr>
425 <td>&nbsp;&nbsp;4.3 [conv.func]</td>
426 <td class="complete" align="center">&#x2713;</td>
427 <td class="complete" align="center">&#x2713;</td>
428 <td class="advanced" align="center"></td>
429 <td></td>
430 <td></td>
431</tr>
432<tr>
433 <td>&nbsp;&nbsp;4.4 [conv.qual]</td>
434 <td class="complete" align="center">&#x2713;</td>
435 <td class="complete" align="center">&#x2713;</td>
436 <td class="complete" align="center">&#x2713;</td>
437 <td></td>
438 <td></td>
439</tr>
440<tr>
441 <td>&nbsp;&nbsp;4.5 [conv.prom]</td>
442 <td class="complete" align="center">&#x2713;</td>
443 <td class="complete" align="center">&#x2713;</td>
444 <td class="complete" align="center">&#x2713;</td>
445 <td></td>
446 <td></td>
447</tr>
448<tr>
449 <td>&nbsp;&nbsp;4.6 [conv.fpprom]</td>
450 <td class="complete" align="center">&#x2713;</td>
451 <td class="complete" align="center">&#x2713;</td>
452 <td class="complete" align="center">&#x2713;</td>
453 <td></td>
454 <td></td>
455</tr>
456<tr>
457 <td>&nbsp;&nbsp;4.7 [conv.integral]</td>
458 <td class="complete" align="center">&#x2713;</td>
459 <td class="complete" align="center">&#x2713;</td>
460 <td class="complete" align="center">&#x2713;</td>
461 <td></td>
462 <td></td>
463</tr>
464<tr>
465 <td>&nbsp;&nbsp;4.8 [conv.double]</td>
466 <td class="complete" align="center">&#x2713;</td>
467 <td class="complete" align="center">&#x2713;</td>
468 <td class="complete" align="center">&#x2713;</td>
469 <td></td>
470 <td></td>
471</tr>
472<tr>
473 <td>&nbsp;&nbsp;4.9 [conv.fpint]</td>
474 <td class="complete" align="center">&#x2713;</td>
475 <td class="complete" align="center">&#x2713;</td>
476 <td class="complete" align="center">&#x2713;</td>
477 <td></td>
478 <td></td>
479</tr>
480<tr>
481 <td>&nbsp;&nbsp;4.10 [conv.ptr]</td>
482 <td class="complete" align="center">&#x2713;</td>
483 <td class="complete" align="center">&#x2713;</td>
484 <td class="complete" align="center">&#x2713;</td>
485 <td></td>
486 <td></td>
487</tr>
488<tr>
489 <td>&nbsp;&nbsp;4.11 [conv.mem]</td>
490 <td class="complete" align="center">&#x2713;</td>
491 <td class="complete" align="center">&#x2713;</td>
492 <td class="complete" align="center">&#x2713;</td>
493 <td></td>
494 <td></td>
495</tr>
496<tr>
497 <td>&nbsp;&nbsp;4.12 [conv.bool]</td>
498 <td class="complete" align="center">&#x2713;</td>
499 <td class="complete" align="center">&#x2713;</td>
500 <td class="complete" align="center">&#x2713;</td>
501 <td></td>
502 <td></td>
503</tr>
504<tr>
505 <td>5 [expr]</td>
506 <td class="na">N/A</td>
507 <td class="na">N/A</td>
508 <td class="complete" align="center">&#x2713;</td>
509 <td></td>
510 <td></td>
511</tr>
512<tr>
513 <td>&nbsp;&nbsp;5.1 [expr.prim]</td>
514 <td class="medium" align="center"></td>
515 <td class="medium" align="center"></td>
516 <td class="medium" align="center"></td>
517 <td></td>
518 <td>template-ids are not supported, name lookup is not complete</td>
519</tr>
520<tr><td>&nbsp;&nbsp;5.2 [expr.post]</td><td></td><td></td><td></td><td></td><td></td></tr>
521<tr>
522 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.1 [expr.sub]</td>
523 <td class="complete" align="center">&#x2713;</td>
524 <td class="complete" align="center">&#x2713;</td>
525 <td class="complete" align="center">&#x2713;</td>
526 <td></td>
527 <td></td>
528</tr>
529<tr>
530 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.2 [expr.call]</td>
531 <td class="complete" align="center">&#x2713;</td>
532 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +0000533 <td class="advanced" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +0000534 <td></td>
Douglas Gregor35adb752009-03-12 00:09:31 +0000535 <td></td>
Cedric Venet3d658642009-02-14 20:20:19 +0000536</tr>
537<tr>
538 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.3 [expr.type.conv]</td>
539 <td class="complete" align="center">&#x2713;</td>
540 <td class="complete" align="center">&#x2713;</td>
541 <td class="basic"></td>
542 <td></td>
543 <td>Only between non-class types</td>
544</tr>
545<tr>
546 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.4 [expr.pseudo]</td>
547 <td class="broken"></td>
548 <td class="broken"></td>
549 <td class="broken"></td>
550 <td></td>
551 <td></td>
552</tr>
553<tr>
554 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.5 [expr.ref]</td>
555 <td class="complete" align="center">&#x2713;</td>
556 <td class="medium"></td>
557 <td class="medium"></td>
558 <td></td>
559 <td>Cannot look up operator names, qualified-ids, or names in base classes</td>
560</tr>
561<tr>
562 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.6 [expr.post.incr]</td>
563 <td class="complete" align="center">&#x2713;</td>
564 <td class="complete" align="center">&#x2713;</td>
565 <td class="complete" align="center">&#x2713;</td>
566 <td></td>
567 <td></td>
568</tr>
569<tr>
570 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.7 [expr.dynamic.cast]</td>
571 <td class="complete" align="center">&#x2713;</td>
572 <td class="complete" align="center">&#x2713;</td>
573 <td class="complete" align="center">&#x2713;</td>
574 <td></td>
575 <td></td>
576</tr>
577<tr>
578 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.8 [expr.typeid]</td>
579 <td class="complete" align="center">&#x2713;</td>
580 <td class="complete" align="center">&#x2713;</td>
581 <td class="complete" align="center">&#x2713;</td>
582 <td></td>
583 <td></td>
584</tr>
585<tr>
586 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.9 [expr.static.cast]</td>
587 <td class="complete" align="center">&#x2713;</td>
588 <td class="complete" align="center">&#x2713;</td>
589 <td class="advanced" align="center"></td>
590 <td></td>
591 <td>Some custom conversions don't work.</td>
592</tr>
593<tr>
594 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.10 [expr.reinterpret.cast]</td>
595 <td class="complete" align="center">&#x2713;</td>
596 <td class="complete" align="center">&#x2713;</td>
597 <td class="complete" align="center">&#x2713;</td>
598 <td></td>
599 <td></td>
600</tr>
601<tr>
602 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.11 [expr.const.cast]</td>
603 <td class="complete" align="center">&#x2713;</td>
604 <td class="complete" align="center">&#x2713;</td>
605 <td class="complete" align="center">&#x2713;</td>
606 <td></td>
607 <td></td>
608</tr>
609<tr><td>&nbsp;&nbsp;5.3 [expr.unary]</td><td></td><td></td><td></td><td></td><td></td></tr>
610<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.1 [expr.unary.op]</td><td></td><td></td><td></td><td></td><td></td></tr>
611<tr>
612 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p1 Unary *</td>
613 <td class="complete" align="center">&#x2713;</td>
614 <td class="complete" align="center">&#x2713;</td>
615 <td class="complete" align="center">&#x2713;</td>
616 <td></td>
617 <td></td>
618</tr>
619<tr>
620 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p2-5 Unary &amp;</td>
621 <td class="complete" align="center">&#x2713;</td>
622 <td class="complete" align="center">&#x2713;</td>
623 <td class="complete" align="center">&#x2713;</td>
624 <td></td>
625 <td></td>
626</tr>
627<tr>
628 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p6 Unary +</td>
629 <td class="complete" align="center">&#x2713;</td>
630 <td class="complete" align="center">&#x2713;</td>
631 <td class="complete" align="center">&#x2713;</td>
632 <td></td>
633 <td></td>
634</tr>
635<tr>
636 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p7 Unary -</td>
637 <td class="complete" align="center">&#x2713;</td>
638 <td class="complete" align="center">&#x2713;</td>
639 <td class="complete" align="center">&#x2713;</td>
640 <td></td>
641 <td></td>
642</tr>
643<tr>
644 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p8 Unary !</td>
645 <td class="complete" align="center">&#x2713;</td>
646 <td class="complete" align="center">&#x2713;</td>
647 <td class="complete" align="center">&#x2713;</td>
648 <td></td>
649 <td></td>
650</tr>
651<tr>
652 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p9 Unary ~</td>
653 <td class="complete" align="center">&#x2713;</td>
654 <td class="complete" align="center">&#x2713;</td>
655 <td class="complete" align="center">&#x2713;</td>
656 <td></td>
657 <td></td>
658</tr>
659<tr>
660 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.2 [expr.pre.incr]</td>
661 <td class="complete" align="center">&#x2713;</td>
662 <td class="complete" align="center">&#x2713;</td>
663 <td class="complete" align="center">&#x2713;</td>
664 <td></td>
665 <td></td>
666</tr>
667<tr>
668 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.3 [expr.sizeof]</td>
669 <td class="complete" align="center">&#x2713;</td>
670 <td class="complete" align="center">&#x2713;</td>
671 <td class="complete" align="center">&#x2713;</td>
672 <td></td>
673 <td></td>
674</tr>
675<tr>
676 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.4 [expr.new]</td>
677 <td class="complete" align="center">&#x2713;</td>
678 <td class="complete" align="center">&#x2713;</td>
679 <td class="advanced" align="center"></td>
680 <td></td>
681 <td>operator delete is not looked up, initialization not quite correct</td>
682</tr>
683<tr>
684 <td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.5 [expr.delete]</td>
685 <td class="complete" align="center">&#x2713;</td>
686 <td class="complete" align="center">&#x2713;</td>
687 <td class="complete" align="center">&#x2713;</td>
688 <td></td>
689 <td></td>
690</tr>
691<tr>
692 <td>&nbsp;&nbsp;5.4 [expr.cast]</td>
693 <td class="complete" align="center">&#x2713;</td>
694 <td class="complete" align="center">&#x2713;</td>
695 <td class="medium"></td>
696 <td></td>
697 <td>Too lenient, and may not always have correct semantics</td>
698</tr>
699<tr>
700 <td>&nbsp;&nbsp;5.5 [expr.mptr.oper]</td>
701 <td class="complete" align="center">&#x2713;</td>
702 <td class="advanced"></td>
703 <td class="advanced"></td>
704 <td></td>
705 <td>Dereferenced member function pointers have the wrong type.</td>
706</tr>
707<tr>
708 <td>&nbsp;&nbsp;5.6 [expr.mul]</td>
709 <td class="complete" align="center">&#x2713;</td>
710 <td class="complete" align="center">&#x2713;</td>
711 <td class="complete" align="center">&#x2713;</td>
712 <td></td>
713 <td></td>
714</tr>
715<tr>
716 <td>&nbsp;&nbsp;5.7 [expr.add]</td>
717 <td class="complete" align="center">&#x2713;</td>
718 <td class="complete" align="center">&#x2713;</td>
719 <td class="complete" align="center">&#x2713;</td>
720 <td></td>
721 <td></td>
722</tr>
723<tr>
724 <td>&nbsp;&nbsp;5.8 [expr.shift]</td>
725 <td class="complete" align="center">&#x2713;</td>
726 <td class="complete" align="center">&#x2713;</td>
727 <td class="complete" align="center">&#x2713;</td>
728 <td></td>
729 <td></td>
730</tr>
731<tr>
732 <td>&nbsp;&nbsp;5.9 [expr.rel]</td>
733 <td class="complete" align="center">&#x2713;</td>
734 <td class="complete" align="center">&#x2713;</td>
735 <td class="complete" align="center">&#x2713;</td>
736 <td></td>
737 <td></td>
738</tr>
739<tr>
740 <td>&nbsp;&nbsp;5.10 [expr.eq]</td>
741 <td class="complete" align="center">&#x2713;</td>
742 <td class="complete" align="center">&#x2713;</td>
743 <td class="complete" align="center">&#x2713;</td>
744 <td></td>
745 <td></td>
746</tr>
747<tr>
748 <td>&nbsp;&nbsp;5.11 [expr.bit.and]</td>
749 <td class="complete" align="center">&#x2713;</td>
750 <td class="complete" align="center">&#x2713;</td>
751 <td class="complete" align="center">&#x2713;</td>
752 <td></td>
753 <td></td>
754</tr>
755<tr>
756 <td>&nbsp;&nbsp;5.12 [expr.xor]</td>
757 <td class="complete" align="center">&#x2713;</td>
758 <td class="complete" align="center">&#x2713;</td>
759 <td class="complete" align="center">&#x2713;</td>
760 <td></td>
761 <td></td>
762</tr>
763<tr>
764 <td>&nbsp;&nbsp;5.13 [expr.or]</td>
765 <td class="complete" align="center">&#x2713;</td>
766 <td class="complete" align="center">&#x2713;</td>
767 <td class="complete" align="center">&#x2713;</td>
768 <td></td>
769 <td></td>
770</tr>
771<tr>
772 <td>&nbsp;&nbsp;5.14 [expr.log.and]</td>
773 <td class="complete" align="center">&#x2713;</td>
774 <td class="complete" align="center">&#x2713;</td>
775 <td class="complete" align="center">&#x2713;</td>
776 <td></td>
777 <td></td>
778</tr>
779<tr>
780 <td>&nbsp;&nbsp;5.15 [expr.log.or]</td>
781 <td class="complete" align="center">&#x2713;</td>
782 <td class="complete" align="center">&#x2713;</td>
783 <td class="complete" align="center">&#x2713;</td>
784 <td></td>
785 <td></td>
786</tr>
787<tr>
788 <td>&nbsp;&nbsp;5.16 [expr.cond]</td>
789 <td class="complete" align="center">&#x2713;</td>
790 <td class="complete" align="center">&#x2713;</td>
791 <td class="medium" align="center"></td>
792 <td></td>
793 <td>throw expressions not supported, type unification rules are based on C only</td>
794</tr>
795<tr>
796 <td>&nbsp;&nbsp;5.17 [expr.ass]</td>
797 <td class="complete" align="center">&#x2713;</td>
798 <td class="complete" align="center">&#x2713;</td>
799 <td class="complete" align="center">&#x2713;</td>
800 <td></td>
801 <td></td>
802</tr>
803<tr>
804 <td>&nbsp;&nbsp;5.18 [expr.comma]</td>
805 <td class="complete" align="center">&#x2713;</td>
806 <td class="complete" align="center">&#x2713;</td>
807 <td class="complete" align="center">&#x2713;</td>
808 <td></td>
809 <td></td>
810</tr>
811<tr>
812 <td>&nbsp;&nbsp;5.19 [expr.const]</td>
813 <td class="complete" align="center">&#x2713;</td>
814 <td class="complete" align="center">&#x2713;</td>
815 <td class="basic"></td>
816 <td></td>
817 <td>Uses C semantics</td>
818</tr>
819<tr>
820 <td>6 [stmt.stmt]</td>
821 <td class="complete" align="center">&#x2713;</td>
822 <td class="complete" align="center">&#x2713;</td>
823 <td class="complete" align="center">&#x2713;</td>
824 <td></td>
825 <td></td>
826</tr>
827<tr>
828 <td>&nbsp;&nbsp;6.1 [stmt.label]</td>
829 <td class="complete" align="center">&#x2713;</td>
830 <td class="complete" align="center">&#x2713;</td>
831 <td class="complete" align="center">&#x2713;</td>
832 <td></td>
833 <td></td>
834</tr>
835<tr>
836 <td>&nbsp;&nbsp;6.2 [stmt.expr]</td>
837 <td class="complete" align="center">&#x2713;</td>
838 <td class="complete" align="center">&#x2713;</td>
839 <td class="complete" align="center">&#x2713;</td>
840 <td></td>
841 <td></td>
842</tr>
843<tr>
844 <td>&nbsp;&nbsp;6.3 [stmt.block]</td>
845 <td class="complete" align="center">&#x2713;</td>
846 <td class="complete" align="center">&#x2713;</td>
847 <td class="complete" align="center">&#x2713;</td>
848 <td></td>
849 <td></td>
850</tr>
851<tr>
852 <td>&nbsp;&nbsp;6.4 [stmt.select]</td>
853 <td class="complete" align="center">&#x2713;</td>
854 <td class="complete" align="center">&#x2713;</td>
855 <td class="advanced" align="center"></td>
856 <td></td>
857 <td>Conversion of declarations to required types not really supported.</td>
858</tr>
859<tr>
860 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.4.1 [stmt.if]</td>
861 <td class="complete" align="center">&#x2713;</td>
862 <td class="complete" align="center">&#x2713;</td>
863 <td class="complete" align="center">&#x2713;</td>
864 <td></td>
865 <td></td>
866</tr>
867<tr>
868 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.4.2 [stmt.switch]</td>
869 <td class="complete" align="center">&#x2713;</td>
870 <td class="complete" align="center">&#x2713;</td>
871 <td class="complete" align="center">&#x2713;</td>
872 <td></td>
873 <td></td>
874</tr>
875<tr>
876 <td>&nbsp;&nbsp;6.5 [stmt.iter]</td>
877 <td class="complete" align="center">&#x2713;</td>
878 <td class="complete" align="center">&#x2713;</td>
879 <td class="advanced" align="center"></td>
880 <td></td>
881 <td>Conversion of declarations to required types not really supported.</td>
882</tr>
883<tr>
884 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.5.1 [stmt.while]</td>
885 <td class="complete" align="center">&#x2713;</td>
886 <td class="complete" align="center">&#x2713;</td>
887 <td class="complete" align="center">&#x2713;</td>
888 <td></td>
889 <td></td>
890</tr>
891<tr>
892 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.5.2 [stmt.do]</td>
893 <td class="complete" align="center">&#x2713;</td>
894 <td class="complete" align="center">&#x2713;</td>
895 <td class="complete" align="center">&#x2713;</td>
896 <td></td>
897 <td></td>
898</tr>
899<tr>
900 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.5.3 [stmt.for]</td>
901 <td class="complete" align="center">&#x2713;</td>
902 <td class="complete" align="center">&#x2713;</td>
903 <td class="complete" align="center">&#x2713;</td>
904 <td></td>
905 <td></td>
906</tr>
907<tr>
908 <td>&nbsp;&nbsp;6.6 [stmt.jump]</td>
909 <td class="complete" align="center">&#x2713;</td>
910 <td class="complete" align="center">&#x2713;</td>
911 <td class="complete" align="center">&#x2713;</td>
912 <td></td>
913 <td></td>
914</tr>
915<tr>
916 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.6.1 [stmt.break]</td>
917 <td class="complete" align="center">&#x2713;</td>
918 <td class="complete" align="center">&#x2713;</td>
919 <td class="complete" align="center">&#x2713;</td>
920 <td></td>
921 <td></td>
922</tr>
923<tr>
924 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.6.2 [stmt.cont]</td>
925 <td class="complete" align="center">&#x2713;</td>
926 <td class="complete" align="center">&#x2713;</td>
927 <td class="complete" align="center">&#x2713;</td>
928 <td></td>
929 <td></td>
930</tr>
931<tr>
932 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.6.3 [stmt.return]</td>
933 <td class="complete" align="center">&#x2713;</td>
934 <td class="complete" align="center">&#x2713;</td>
935 <td class="complete" align="center">&#x2713;</td>
936 <td></td>
937 <td></td>
938</tr>
939<tr>
940 <td>&nbsp;&nbsp;&nbsp;&nbsp;6.6.4 [stmt.goto]</td>
941 <td class="complete" align="center">&#x2713;</td>
942 <td class="complete" align="center">&#x2713;</td>
943 <td class="complete" align="center">&#x2713;</td>
944 <td></td>
945 <td></td>
946</tr>
947<tr>
948 <td>&nbsp;&nbsp;6.7 [stmt.dcl]</td>
949 <td class="complete" align="center">&#x2713;</td>
950 <td class="complete" align="center">&#x2713;</td>
951 <td class="advanced" align="center"></td>
952 <td></td>
953 <td>Skipping of initialization is not flagged. Existence and accessibility of destructors is not tested for.</td>
954</tr>
955<tr>
956 <td>&nbsp;&nbsp;6.8 [stmt.ambig]</td>
957 <td class="complete" align="center">&#x2713;</td>
958 <td class="complete" align="center">&#x2713;</td>
959 <td class="complete" align="center">&#x2713;</td>
960 <td></td>
961 <td></td>
962</tr>
963<tr><td>7 [dcl.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr>
964<tr><td>
965 &nbsp;&nbsp;7.1 [dcl.spec]</td>
966 <td class="advanced" align="center"></td>
967 <td class="advanced" align="center"></td>
968 <td class="advanced" align="center"></td>
969 <td></td>
970 <td>No support for friend declarations.</td>
971</tr>
972<tr>
973 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.1.1 [dcl.stc]</td>
974 <td class="complete" align="center">&#x2713;</td>
975 <td class="advanced" align="center"></td>
976 <td class="advanced" align="center"></td>
977 <td></td>
978 <td>Linkage merging has some errors.</td>
979</tr>
980<tr>
981 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.1.2 [dcl.fct.spec]</td>
982 <td class="complete" align="center">&#x2713;</td>
983 <td class="complete" align="center">&#x2713;</td>
984 <td class="complete" align="center">&#x2713;</td>
985 <td></td>
986 <td></td>
987</tr>
988<tr>
989 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.1.3 [dcl.typedef]</td>
990 <td class="complete" align="center">&#x2713;</td>
991 <td class="complete" align="center">&#x2713;</td>
992 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +0000993 <td class="complete" align="center">&#x2713;</td>
994 <td></td>
Cedric Venet3d658642009-02-14 20:20:19 +0000995</tr>
996<tr>
997 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.1.4 [dcl.friend]</td>
998 <td class="broken"></td>
999 <td class="broken"></td>
1000 <td class="broken"></td>
1001 <td></td>
1002 <td></td>
1003</tr>
1004<tr>
1005 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.1.5 [dcl.type]</td>
1006 <td class="complete" align="center">&#x2713;</td>
1007 <td class="complete" align="center">&#x2713;</td>
1008 <td class="complete" align="center">&#x2713;</td>
1009 <td></td>
1010 <td></td>
1011</tr>
1012<tr>
1013 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.1.5.1 [dcl.type.cv]</td>
1014 <td class="complete" align="center">&#x2713;</td>
1015 <td class="complete" align="center">&#x2713;</td>
1016 <td class="complete" align="center">&#x2713;</td>
1017 <td></td>
1018 <td></td>
1019</tr>
1020<tr>
1021 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.1.5.2 [dcl.type.simple]</td>
1022 <td class="medium"></td>
1023 <td class="advanced"></td>
1024 <td class="advanced"></td>
1025 <td></td>
1026 <td>Cannot parse template IDs.</td>
1027</tr>
1028<tr>
1029 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.1.5.3 [dcl.type.elab]</td>
1030 <td class="medium"></td>
1031 <td class="advanced"></td>
1032 <td class="advanced"></td>
1033 <td></td>
1034 <td>Cannot parse template IDs.</td>
1035</tr>
1036<tr>
1037 <td>&nbsp;&nbsp;7.2 [dcl.enum]</td>
1038 <td class="complete" align="center">&#x2713;</td>
1039 <td class="complete" align="center">&#x2713;</td>
1040 <td class="complete" align="center">&#x2713;</td>
1041 <td></td>
1042 <td></td>
1043</tr>
1044<tr>
1045 <td>&nbsp;&nbsp;7.3 [basic.namespace]</td>
1046 <td class="complete" align="center">&#x2713;</td>
1047 <td class="complete" align="center">&#x2713;</td>
1048 <td class="complete" align="center">&#x2713;</td>
1049 <td></td>
1050 <td></td>
1051</tr>
1052<tr>
1053 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.3.1 [namespace.def]</td>
1054 <td class="medium"></td>
1055 <td class="medium"></td>
1056 <td class="medium"></td>
1057 <td></td>
1058 <td>Cannot parse namespace aliases.</td>
1059</tr>
1060<tr>
1061 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.3.1.1 [namespace.unnamed]</td>
1062 <td class="complete" align="center">&#x2713;</td>
1063 <td class="complete" align="center">&#x2713;</td>
1064 <td class="broken"></td>
1065 <td></td>
1066 <td>Unnamed namespace members cannot be looked up.</td>
1067</tr>
1068<tr>
1069 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.3.1.2 [namespace.memdef]</td>
1070 <td class="complete" align="center">&#x2713;</td>
1071 <td class="complete" align="center">&#x2713;</td>
1072 <td class="advanced"></td>
1073 <td></td>
1074 <td>The friend stuff is not supported.</td>
1075</tr>
1076<tr>
1077 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.3.2 [namespace.alias]</td>
Anders Carlsson5705e532009-03-31 17:17:14 +00001078 <td class="complete" align="center">&#x2713;</td>
1079 <td class="complete" align="center">&#x2713;</td>
1080 <td class="complete" align="center">&#x2713;</td>
1081 <td class="na">N/A</td>
Cedric Venet3d658642009-02-14 20:20:19 +00001082 <td></td>
1083</tr>
1084<tr>
1085 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.3.3 [namespace.udecl]</td>
1086 <td class="broken" align="center"></td>
1087 <td class="broken" align="center"></td>
1088 <td class="broken" align="center"></td>
1089 <td></td>
1090 <td></td>
1091</tr>
1092<tr>
1093 <td>&nbsp;&nbsp;&nbsp;&nbsp;7.3.4[namespace.udir]</td>
1094 <td class="complete" align="center">&#x2713;</td>
1095 <td class="complete" align="center">&#x2713;</td>
1096 <td class="advanced"></td>
1097 <td class="broken" align="center"></td>
1098 <td>Example in p4 fails.</td>
1099</tr>
1100<tr><td>
1101 &nbsp;&nbsp;7.4 [dcl.asm]</td>
1102 <td class="complete" align="center">&#x2713;</td>
1103 <td class="complete" align="center">&#x2713;</td>
1104 <td class="complete" align="center">&#x2713;</td>
1105 <td></td>
1106 <td></td>
1107</tr>
1108<tr>
1109 <td>&nbsp;&nbsp;7.5 [dcl.link]</td>
1110 <td class="complete" align="center">&#x2713;</td>
1111 <td class="basic"></td>
1112 <td class="basic"></td>
1113 <td></td>
1114 <td></td>
1115</tr>
1116<tr><td>8 [dcl.decl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1117<tr><td>&nbsp;&nbsp;8.1 [dcl.name]</td><td></td><td></td><td></td><td></td><td></td></tr>
1118<tr><td>&nbsp;&nbsp;8.2 [dcl.ambig.res]</td><td></td><td></td><td></td><td></td><td></td></tr>
1119<tr><td>&nbsp;&nbsp;8.3 [dcl.meaning]</td><td></td><td></td><td></td><td></td><td></td></tr>
1120<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;8.3.1 [dcl.ptr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1121<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;8.3.2 [dcl.ref]</td><td></td><td></td><td></td><td></td><td></td></tr>
1122<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;8.3.3 [dcl.mptr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1123<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;8.3.4 [dcl.array]</td><td></td><td></td><td></td><td></td><td></td></tr>
1124<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;8.3.5 [dcl.fct]</td><td></td><td></td><td></td><td></td><td></td></tr>
1125<tr>
1126 <td>&nbsp;&nbsp;&nbsp;&nbsp;8.3.6 [dcl.fct.default]</td>
1127 <td class="advanced" align="center"></td>
1128 <td class="advanced" align="center"></td>
1129 <td class="advanced" align="center"></td>
1130 <td></td>
1131 <td>Missing default arguments for templates.</td>
1132</tr>
1133<tr><td>&nbsp;&nbsp;8.4 [dcl.fct.def]</td><td></td><td></td><td></td><td></td><td></td></tr>
1134<tr><td>&nbsp;&nbsp;8.5 [dcl.init]</td><td></td><td></td><td></td><td></td><td></td></tr>
1135<tr>
1136 <td>&nbsp;&nbsp;&nbsp;&nbsp;8.5.1[dcl.init.aggr]</td>
1137 <td class="advanced" align="center"></td>
1138 <td class="advanced" align="center"></td>
1139 <td class="medium" align="center"></td>
1140 <td class="basic" align="center"></td>
1141 <td>No CodeGen for initializing non-aggregates or dynamic initialization.</td>
1142</tr>
Douglas Gregor35adb752009-03-12 00:09:31 +00001143<tr>
1144 <td>&nbsp;&nbsp;&nbsp;&nbsp;8.5.2[dcl.init.string]</td>
1145 <td class="advanced" align="center"></td>
1146 <td class="advanced" align="center"></td>
1147 <td class="medium" align="center"></td>
1148 <td class="basic" align="center"></td>
1149 <td></td>
1150</tr>
Cedric Venet3d658642009-02-14 20:20:19 +00001151<tr>
1152 <td>&nbsp;&nbsp;&nbsp;&nbsp;8.5.3 [dcl.init.ref]</td>
1153 <td class="advanced" align="center"></td>
1154 <td class="advanced" align="center"></td>
1155 <td class="medium" align="center"></td>
1156 <td class="basic" align="center"></td>
1157 <td></td>
1158</tr>
1159<tr>
1160 <td>9 [class]</td>
1161 <td class="advanced" align="center"></td>
1162 <td></td>
1163 <td></td>
1164 <td></td>
1165 <td></td>
1166</tr>
1167<tr>
1168 <td>&nbsp;&nbsp;9.1 [class.name]</td>
1169 <td class="complete" align="center">&#x2713;</td>
1170 <td></td>
1171 <td></td>
1172 <td></td>
1173 <td></td>
1174</tr>
1175<tr>
1176 <td>&nbsp;&nbsp;9.2 [class.mem]</td>
1177 <td class="advanced" align="center"></td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001178 <td class="medium" align="center"></td>
1179 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001180 <td></td>
1181 <td>No parser support for using declarations, or templates.</td>
1182</tr>
1183<tr>
1184 <td>&nbsp;&nbsp;9.3 [class.mfct]</td>
1185 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001186 <td class="medium" align="center"></td>
1187 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001188 <td></td>
1189 <td></td>
1190</tr>
1191<tr>
1192 <td>&nbsp;&nbsp;&nbsp;&nbsp;9.3.1 [class.mfct.non-static]</td>
1193 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001194 <td class="medium" align="center"></td>
1195 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001196 <td></td>
1197 <td></td>
1198</tr>
1199<tr>
1200 <td>&nbsp;&nbsp;&nbsp;&nbsp;9.3.2 [class.this]</td>
1201 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001202 <td class="medium" align="center"></td>
1203 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001204 <td></td>
1205 <td></td>
1206</tr>
1207<tr>
1208 <td>&nbsp;&nbsp;9.4 [class.static]</td>
1209 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001210 <td class="complete" align="center">&#x2713;</td>
1211 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001212 <td></td>
1213 <td></td>
1214</tr>
1215<tr>
1216 <td>&nbsp;&nbsp;&nbsp;&nbsp;9.4.1 [class.static.mfct]</td>
1217 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001218 <td class="complete" align="center">&#x2713;</td>
1219 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001220 <td></td>
1221 <td></td>
1222</tr>
1223<tr>
1224 <td>&nbsp;&nbsp;&nbsp;&nbsp;9.4.2 [class.static.data]</td>
1225 <td class="complete" align="center">&#x2713;</td>
Douglas Gregor35adb752009-03-12 00:09:31 +00001226 <td class="complete" align="center">&#x2713;</td>
1227 <td class="medium" align="center"></td>
Cedric Venet3d658642009-02-14 20:20:19 +00001228 <td></td>
1229 <td></td>
1230</tr>
1231<tr>
1232 <td>&nbsp;&nbsp;9.5 [class.union]</td>
1233 <td class="complete" align="center">&#x2713;</td>
1234 <td class="complete" align="center">&#x2713;</td>
1235 <td class="medium"></td>
1236 <td class="medium"></td>
1237 <td>Semantic analysis does not yet check all of the requirements placed on the members of unions.</td>
1238</tr>
1239<tr>
1240 <td>&nbsp;&nbsp;9.6 [class.bit]</td>
1241 <td class="complete" align="center">&#x2713;</td>
1242 <td></td>
1243 <td></td>
1244 <td></td>
1245 <td></td>
1246</tr>
1247<tr>
1248 <td>&nbsp;&nbsp;9.7 [class.nest]</td>
1249 <td class="complete" align="center">&#x2713;</td>
1250 <td></td>
1251 <td></td>
1252 <td></td>
1253 <td></td>
1254</tr>
1255<tr>
1256 <td>&nbsp;&nbsp;9.8 [class.local]</td>
1257 <td class="complete" align="center">&#x2713;</td>
1258 <td></td>
1259 <td></td>
1260 <td></td>
1261 <td></td>
1262</tr>
1263<tr>
1264 <td>&nbsp;&nbsp;9.9 [class.nested.type]</td>
1265 <td class="complete" align="center">&#x2713;</td>
1266 <td></td>
1267 <td></td>
1268 <td></td>
1269 <td></td>
1270</tr>
1271<tr><td>10 [class.derived]</td><td></td><td></td><td></td><td></td><td></td></tr>
1272<tr><td>&nbsp;&nbsp;10.1 [class.mi]</td><td></td><td></td><td></td><td></td><td></td></tr>
1273<tr><td>&nbsp;&nbsp;10.2 [class.member.lookup]</td><td></td><td></td><td></td><td></td><td></td></tr>
1274<tr><td>&nbsp;&nbsp;10.3 [class.virtual]</td><td></td><td></td><td></td><td></td><td></td></tr>
Anders Carlsson1edac4d2009-03-24 01:24:06 +00001275<tr>
1276 <td>&nbsp;&nbsp;10.4 [class.abstract]</td>
1277 <td class="complete" align="center">&#x2713;</td>
1278 <td class="complete" align="center">&#x2713;</td>
1279 <td class="complete" align="center">&#x2713;</td>
1280 <td class="na">N/A</td>
1281 <td></td>
1282 </tr>
Cedric Venet3d658642009-02-14 20:20:19 +00001283<tr><td>11 [class.access]</td><td></td><td></td><td></td><td></td><td></td></tr>
1284<tr><td>&nbsp;&nbsp;11.1 [class.access.spec]</td><td></td><td></td><td></td><td></td><td></td></tr>
1285<tr><td>&nbsp;&nbsp;11.2 [class.access.base]</td><td></td><td></td><td></td><td></td><td></td></tr>
1286<tr><td>&nbsp;&nbsp;11.3 [class.access.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1287<tr><td>&nbsp;&nbsp;11.4 [class.friend]</td><td></td><td></td><td></td><td></td><td></td></tr>
1288<tr><td>&nbsp;&nbsp;11.5 [class.protected]</td><td></td><td></td><td></td><td></td><td></td></tr>
1289<tr><td>&nbsp;&nbsp;11.6 [class.access.virt]</td><td></td><td></td><td></td><td></td><td></td></tr>
1290<tr><td>&nbsp;&nbsp;11.7 [class.paths]</td><td></td><td></td><td></td><td></td><td></td></tr>
1291<tr><td>&nbsp;&nbsp;11.8 [class.access.nest]</td><td></td><td></td><td></td><td></td><td></td></tr>
1292<tr><td>12 [special]</td><td></td><td></td><td></td><td></td><td></td></tr>
1293<tr>
1294 <td>&nbsp;&nbsp;12.1 [class.ctor]</td>
1295 <td class="advanced" align="center"></td>
1296 <td class="medium" align="center"></td>
1297 <td class="basic" align="center"></td>
1298 <td class="broken" align="center"></td>
1299 <td></td>
1300</tr>
1301<tr><td>&nbsp;&nbsp;12.2 [class.temporary]</td><td></td><td></td><td></td><td></td><td></td></tr>
1302<tr>
1303 <td>&nbsp;&nbsp;12.3 [class.conv]</td>
1304 <td class="advanced" align="center"></td>
1305 <td class="medium" align="center"></td>
1306 <td class="basic" align="center"></td>
1307 <td class="broken" align="center"></td>
1308 <td></td>
1309</tr>
1310<tr>
1311 <td>&nbsp;&nbsp;&nbsp;&nbsp;12.3.1 [class.conv.ctor]</td>
1312 <td class="advanced" align="center"></td>
1313 <td class="medium" align="center"></td>
1314 <td class="medium" align="center"></td>
1315 <td class="broken" align="center"></td>
1316 <td></td>
1317</tr>
1318<tr>
1319 <td>&nbsp;&nbsp;&nbsp;&nbsp;12.3.2 [class.conv.fct]</td>
1320 <td class="advanced" align="center"></td>
1321 <td class="medium" align="center"></td>
1322 <td class="basic" align="center"></td>
1323 <td class="broken" align="center"></td>
1324 <td>Conversion functions can be declared and defined, but aren't used for anything.</td>
1325</tr>
1326<tr>
1327 <td>&nbsp;&nbsp;12.4 [class.dtor]</td>
1328 <td class="advanced" align="center"></td>
1329 <td class="medium" align="center"></td>
1330 <td class="basic" align="center"></td>
1331 <td class="broken" align="center"></td>
1332 <td>Most of the semantics of destructors are unimplemented.</td>
1333</tr>
1334<tr><td>&nbsp;&nbsp;12.5 [class.free]</td><td></td><td></td><td></td><td></td><td></td></tr>
1335<tr><td>&nbsp;&nbsp;12.6 [class.init]</td><td></td><td></td><td></td><td></td><td></td></tr>
1336<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;12.6.1 [class.expl.init]</td><td></td><td></td><td></td><td></td><td></td></tr>
1337<tr>
1338 <td>&nbsp;&nbsp;&nbsp;&nbsp;12.6.2 [class.base.init]</td>
1339 <td class="advanced" align="center"></td>
1340 <td class="medium" align="center"></td>
1341 <td class="basic" align="center"></td>
1342 <td class="broken" align="center"></td>
1343 <td>No actual direct initialization; implicit initialization not checked.</td>
1344</tr>
1345<tr><td>&nbsp;&nbsp;12.7 [class.cdtor]</td><td></td><td></td><td></td><td></td><td></td></tr>
1346<tr><td>&nbsp;&nbsp;12.8 [class.copy]</td><td></td><td></td><td></td><td></td><td></td></tr>
1347<tr><td>13 [over]</td><td></td><td></td><td></td><td></td><td></td></tr>
1348<tr>
1349 <td>&nbsp;&nbsp;13.1 [over.load]</td>
1350 <td class="complete" align="center">&#x2713;</td>
1351 <td class="basic" align="center"></td>
1352 <td class="basic" align="center"></td>
1353 <td class="broken" align="center"></td>
1354 <td>Missing name mangling.</td>
1355</tr>
1356<tr>
1357 <td>&nbsp;&nbsp;13.2 [over.dcl]</td>
1358 <td class="complete" align="center">&#x2713;</td>
1359 <td class="basic" align="center"></td>
1360 <td class="basic" align="center"></td>
1361 <td class="broken" align="center"></td>
1362 <td></td>
1363</tr>
1364<tr>
1365 <td>&nbsp;&nbsp;13.3 [over.match]</td>
1366 <td class="complete" align="center">&#x2713;</td>
1367 <td class="basic" align="center"></td>
1368 <td class="basic" align="center"></td>
1369 <td class="broken" align="center"></td>
1370 <td></td>
1371</tr>
1372<tr>
1373 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.3.1 [over.match.funcs]</td>
1374 <td class="complete" align="center">&#x2713;</td>
1375 <td class="basic" align="center"></td>
1376 <td class="basic" align="center"></td>
1377 <td class="broken" align="center"></td>
1378 <td></td>
1379</tr>
1380<tr>
1381 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.1 [over.match.call]</td>
1382 <td class="complete" align="center">&#x2713;</td>
1383 <td class="basic" align="center"></td>
1384 <td class="basic" align="center"></td>
1385 <td class="broken" align="center"></td>
1386 <td></td>
1387</tr>
1388<tr>
1389 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.1.1 [over.call.func]</td>
1390 <td class="complete" align="center">&#x2713;</td>
1391 <td class="basic" align="center"></td>
1392 <td class="basic" align="center"></td>
1393 <td class="broken" align="center"></td>
1394 <td></td>
1395</tr>
1396<tr>
1397 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.1.2 [over.call.object]</td>
1398 <td class="complete" align="center">&#x2713;</td>
1399 <td class="medium" align="center"></td>
1400 <td class="advanced" align="center"></td>
1401 <td class="broken" align="center"></td>
1402 <td>Missing AST representation for the implicit conversion to a function reference/pointer</td>
1403</tr>
1404<tr>
1405 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.2 [over.match.oper]</td>
1406 <td class="complete" align="center">&#x2713;</td>
1407 <td class="advanced" align="center"></td>
1408 <td class="advanced" align="center"></td>
1409 <td class="broken" align="center"></td>
1410 <td></td>
1411</tr>
1412<tr>
1413 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.3 [over.match.ctor]</td>
1414 <td class="complete" align="center">&#x2713;</td>
1415 <td class="basic" align="center"></td>
1416 <td class="basic" align="center"></td>
1417 <td class="broken" align="center"></td>
1418 <td></td>
1419</tr>
1420<tr>
1421 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.4 [over.match.copy]</td>
1422 <td class="complete" align="center">&#x2713;</td>
1423 <td class="basic" align="center"></td>
1424 <td class="basic" align="center"></td>
1425 <td class="broken" align="center"></td>
1426 <td></td>
1427</tr>
1428<tr>
1429 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.5 [over.match.conv]</td>
1430 <td class="complete" align="center">&#x2713;</td>
1431 <td class="broken" align="center"></td>
1432 <td class="broken" align="center"></td>
1433 <td class="broken" align="center"></td>
1434 <td></td>
1435</tr>
1436<tr>
1437 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.1.6 [over.match.ref]</td>
1438 <td class="complete" align="center">&#x2713;</td>
1439 <td class="basic" align="center"></td>
1440 <td class="basic" align="center"></td>
1441 <td class="broken" align="center"></td>
1442 <td></td>
1443</tr>
1444<tr>
1445 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.3.2 [over.match.viable]</td>
1446 <td class="complete" align="center">&#x2713;</td>
1447 <td class="medium" align="center"></td>
1448 <td class="medium" align="center"></td>
1449 <td class="broken" align="center"></td>
1450 <td></td>
1451</tr>
1452<tr>
1453 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.3.3 [over.match.best]</td>
1454 <td class="complete" align="center">&#x2713;</td>
1455 <td class="basic" align="center"></td>
1456 <td class="basic" align="center"></td>
1457 <td class="broken" align="center"></td>
1458 <td></td>
1459</tr>
1460<tr>
1461 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.3.1 [over.best.ics]</td>
1462 <td class="complete" align="center">&#x2713;</td>
1463 <td class="medium" align="center"></td>
1464 <td class="medium" align="center"></td>
1465 <td class="broken" align="center"></td>
1466 <td></td>
1467</tr>
1468<tr>
1469 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.3.1.1 [over.ics.scs]</td>
1470 <td class="complete" align="center">&#x2713;</td>
1471 <td class="medium" align="center"></td>
1472 <td class="medium" align="center"></td>
1473 <td class="broken" align="center"></td>
1474 <td></td>
1475</tr>
1476<tr>
1477 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.3.1.2 [over.ics.user]</td>
1478 <td class="complete" align="center">&#x2713;</td>
1479 <td class="basic" align="center"></td>
1480 <td class="basic" align="center"></td>
1481 <td class="broken" align="center"></td>
1482 <td></td>
1483</tr>
1484<tr>
1485 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.3.1.3 [over.ics.ellipsis]</td>
1486 <td class="complete" align="center">&#x2713;</td>
1487 <td class="medium" align="center"></td>
1488 <td class="medium" align="center"></td>
1489 <td class="broken" align="center"></td>
1490 <td></td>
1491</tr>
1492<tr>
1493 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.3.1.4 [over.ics.ref]</td>
1494 <td class="complete" align="center">&#x2713;</td>
1495 <td class="medium" align="center"></td>
1496 <td class="medium" align="center"></td>
1497 <td class="broken" align="center"></td>
1498 <td></td>
1499</tr>
1500<tr>
1501 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13.3.3.2 [over.ics.rank]</td>
1502 <td class="complete" align="center">&#x2713;</td>
1503 <td class="medium" align="center"></td>
1504 <td class="medium" align="center"></td>
1505 <td class="broken" align="center"></td>
1506 <td></td>
1507</tr>
1508<tr>
1509 <td>&nbsp;&nbsp;13.4 [over.over]</td>
1510 <td class="advanced" align="center"></td>
1511 <td class="medium" align="center"></td>
1512 <td class="basic" align="center"></td>
1513 <td class="broken" align="center"></td>
1514 <td>Error messages need some work. Without templates or using
1515 declarations, we don't have any ambiguities, so the semantic
1516 analysis is incomplete.</td>
1517</tr>
1518<tr>
1519 <td>&nbsp;&nbsp;13.5 [over.oper]</td>
1520 <td class="advanced" align="center"></td>
1521 <td class="advanced" align="center"></td>
1522 <td class="medium" align="center"></td>
1523 <td class="broken" align="center"></td>
1524 <td>Some overloaded operators can only be called with function syntax, e.g., <code>operator[](x)</code>.</td>
1525</tr>
1526<tr>
1527 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.1 [over.unary]</td>
1528 <td class="na" align="center">N/A</td>
1529 <td class="advanced" align="center"></td>
1530 <td class="advanced" align="center"></td>
1531 <td class="broken" align="center"></td>
1532 <td></td>
1533</tr>
1534<tr>
1535 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.2 [over.binary]</td>
1536 <td class="na" align="center">N/A</td>
1537 <td class="advanced" align="center"></td>
1538 <td class="advanced" align="center"></td>
1539 <td class="broken" align="center"></td>
1540 <td></td>
1541</tr>
1542<tr>
1543 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.3 [over.ass]</td>
1544 <td class="na" align="center">N/A</td>
1545 <td class="advanced" align="center"></td>
1546 <td class="advanced" align="center"></td>
1547 <td class="broken" align="center"></td>
1548 <td></td>
1549</tr>
1550<tr>
1551 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.4 [over.call]</td>
1552 <td class="na" align="center">N/A</td>
1553 <td class="advanced" align="center"></td>
1554 <td class="advanced" align="center"></td>
1555 <td class="broken" align="center"></td>
1556 <td></td>
1557</tr>
1558<tr>
1559 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.5 [over.sub]</td>
1560 <td class="na" align="center">N/A</td>
1561 <td class="advanced" align="center"></td>
1562 <td class="advanced" align="center"></td>
1563 <td class="broken" align="center"></td>
1564 <td></td>
1565</tr>
1566<tr>
1567 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.6 [over.ref]</td>
1568 <td class="na" align="center">N/A</td>
1569 <td class="advanced" align="center"></td>
1570 <td class="advanced" align="center"></td>
1571 <td class="broken" align="center"></td>
1572 <td></td>
1573</tr>
1574<tr>
1575 <td>&nbsp;&nbsp;&nbsp;&nbsp;13.5.7 [over.inc]</td>
1576 <td class="na" align="center">N/A</td>
1577 <td class="advanced" align="center"></td>
1578 <td class="advanced" align="center"></td>
1579 <td class="broken" align="center"></td>
1580 <td></td>
1581</tr>
1582<tr>
1583 <td>&nbsp;&nbsp;13.6 [over.built]</td>
1584 <td class="na" align="center">N/A</td>
1585 <td class="advanced" align="center"></td>
1586 <td class="medium" align="center"></td>
1587 <td class="broken" align="center"></td>
1588 <td>Missing pointer-to-member versions (p11, p16) and support for
1589 the ternary operator (p24, p25).</td>
1590</tr>
1591<tr><td>14 [temp]</td><td></td><td></td><td></td><td></td><td></td></tr>
1592<tr><td>&nbsp;&nbsp;14.1 [temp.param]</td><td></td><td></td><td></td><td></td><td></td></tr>
1593<tr><td>&nbsp;&nbsp;14.2 [temp.names]</td><td></td><td></td><td></td><td></td><td></td></tr>
1594<tr><td>&nbsp;&nbsp;14.3 [temp.arg]</td><td></td><td></td><td></td><td></td><td></td></tr>
1595<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.3.1 [temp.arg.type]</td><td></td><td></td><td></td><td></td><td></td></tr>
1596<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.3.2 [temp.arg.nontype]</td><td></td><td></td><td></td><td></td><td></td></tr>
1597<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.3.3 [temp.arg.template]</td><td></td><td></td><td></td><td></td><td></td></tr>
1598<tr><td>&nbsp;&nbsp;14.4 [temp.type]</td><td></td><td></td><td></td><td></td><td></td></tr>
1599<tr><td>&nbsp;&nbsp;14.5 [temp.decls]</td><td></td><td></td><td></td><td></td><td></td></tr>
1600<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.5.1 [temp.class]</td><td></td><td></td><td></td><td></td><td></td></tr>
1601<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.1.1 [temp.mem.func]</td><td></td><td></td><td></td><td></td><td></td></tr>
1602<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.1.2 [temp.mem.class]</td><td></td><td></td><td></td><td></td><td></td></tr>
1603<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.1.3 [temp.static]</td><td></td><td></td><td></td><td></td><td></td></tr>
1604<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.5.2 [temp.mem]</td><td></td><td></td><td></td><td></td><td></td></tr>
1605<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.5.3 [temp.friend]</td><td></td><td></td><td></td><td></td><td></td></tr>
1606<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.5.4 [temp.class.spec]</td><td></td><td></td><td></td><td></td><td></td></tr>
1607<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.5.1 [temp.class.spec.match]</td><td></td><td></td><td></td><td></td><td></td></tr>
1608<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.5.2 [temp.class.order]</td><td></td><td></td><td></td><td></td><td></td></tr>
1609<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.5.3 [temp.class.spec.mfunc]</td><td></td><td></td><td></td><td></td><td></td></tr>
1610<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.5.5 [temp.fct]</td><td></td><td></td><td></td><td></td><td></td></tr>
1611<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.5.1 [temp.over.link]</td><td></td><td></td><td></td><td></td><td></td></tr>
1612<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.5.5.2 [temp.func.order]</td><td></td><td></td><td></td><td></td><td></td></tr>
1613<tr><td>&nbsp;&nbsp;14.6 [temp.res]</td><td></td><td></td><td></td><td></td><td></td></tr>
1614<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.6.1 [temp.local]</td><td></td><td></td><td></td><td></td><td></td></tr>
1615<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.6.2 [temp.dep]</td><td></td><td></td><td></td><td></td><td></td></tr>
1616<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.6.2.1 [temp.dep.type]</td><td></td><td></td><td></td><td></td><td></td></tr>
1617<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.6.2.2 [temp.dep.expr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1618<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.6.2.3 [temp.dep.constexpr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1619<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.6.2.4 [temp.dep.temp]</td><td></td><td></td><td></td><td></td><td></td></tr>
1620<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.6.3 [temp.nondep]</td><td></td><td></td><td></td><td></td><td></td></tr>
1621<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.6.4 [temp.dep.res]</td><td></td><td></td><td></td><td></td><td></td></tr>
1622<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.6.4.1 [temp.point]</td><td></td><td></td><td></td><td></td><td></td></tr>
1623<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.6.4.2 [temp.dep.candidate]</td><td></td><td></td><td></td><td></td><td></td></tr>
1624<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.6.5 [temp.inject]</td><td></td><td></td><td></td><td></td><td></td></tr>
1625<tr><td>&nbsp;&nbsp;14.7 [temp.spec]</td><td></td><td></td><td></td><td></td><td></td></tr>
1626<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.7.1 [temp.inst]</td><td></td><td></td><td></td><td></td><td></td></tr>
1627<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.7.2 [temp.explicit]</td><td></td><td></td><td></td><td></td><td></td></tr>
1628<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.7.3 [temp.expl.spec]</td><td></td><td></td><td></td><td></td><td></td></tr>
1629<tr><td>&nbsp;&nbsp;14.8 [temp.fct.spec]</td><td></td><td></td><td></td><td></td><td></td></tr>
1630<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.8.1 [temp.arg.explicit]</td><td></td><td></td><td></td><td></td><td></td></tr>
1631<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.8.2 [temp.deduct]</td><td></td><td></td><td></td><td></td><td></td></tr>
1632<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.8.2.1 [temp.deduct.call]</td><td></td><td></td><td></td><td></td><td></td></tr>
1633<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.8.2.2 [temp.deduct.funcaddr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1634<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.8.2.3 [temp.deduct.conv]</td><td></td><td></td><td></td><td></td><td></td></tr>
1635<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14.8.2.4 [temp.deduct.type]</td><td></td><td></td><td></td><td></td><td></td></tr>
1636<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;14.8.3 [temp.over]</td><td></td><td></td><td></td><td></td><td></td></tr>
1637<tr><td>15 [except]</td><td></td><td></td><td></td><td></td><td></td></tr>
1638<tr><td>&nbsp;&nbsp;15.1 [except.throw]</td><td></td><td></td><td></td><td></td><td></td></tr>
1639<tr><td>&nbsp;&nbsp;15.2 [except.ctor]</td><td></td><td></td><td></td><td></td><td></td></tr>
1640<tr><td>&nbsp;&nbsp;15.3 [except.handle]</td><td></td><td></td><td></td><td></td><td></td></tr>
1641<tr><td>&nbsp;&nbsp;15.4 [except.spec]</td><td></td><td></td><td></td><td></td><td></td></tr>
1642<tr><td>&nbsp;&nbsp;15.5 [except.special]</td><td></td><td></td><td></td><td></td><td></td></tr>
1643<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;15.5.1 [except.terminate]</td><td></td><td></td><td></td><td></td><td></td></tr>
1644<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;15.5.2 [except.unexpected]</td><td></td><td></td><td></td><td></td><td></td></tr>
1645<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;15.5.3 [except.uncaught]</td><td></td><td></td><td></td><td></td><td></td></tr>
1646<tr><td>&nbsp;&nbsp;15.6 [except.access]</td><td></td><td></td><td></td><td></td><td></td></tr>
1647<tr><td>16 [cpp]</td><td></td><td></td><td></td><td></td><td></td></tr>
1648<tr><td>&nbsp;&nbsp;16.1 [cpp.cond]</td><td></td><td></td><td></td><td></td><td></td></tr>
1649<tr><td>&nbsp;&nbsp;16.2 [cpp.include]</td><td></td><td></td><td></td><td></td><td></td></tr>
1650<tr><td>&nbsp;&nbsp;16.3 [cpp.replace]</td><td></td><td></td><td></td><td></td><td></td></tr>
1651<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;16.3.1 [cpp.subst]</td><td></td><td></td><td></td><td></td><td></td></tr>
1652<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;16.3.2 [cpp.stringize]</td><td></td><td></td><td></td><td></td><td></td></tr>
1653<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;16.3.3 [cpp.concat]</td><td></td><td></td><td></td><td></td><td></td></tr>
1654<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;16.3.4 [cpp.rescan]</td><td></td><td></td><td></td><td></td><td></td></tr>
1655<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;16.3.5 [cpp.scope]</td><td></td><td></td><td></td><td></td><td></td></tr>
1656<tr><td>&nbsp;&nbsp;16.4 [cpp.line]</td><td></td><td></td><td></td><td></td><td></td></tr>
1657<tr><td>&nbsp;&nbsp;16.5 [cpp.error]</td><td></td><td></td><td></td><td></td><td></td></tr>
1658<tr><td>&nbsp;&nbsp;16.6 [cpp.pragma]</td><td></td><td></td><td></td><td></td><td></td></tr>
1659<tr><td>&nbsp;&nbsp;16.7 [cpp.null]</td><td></td><td></td><td></td><td></td><td></td></tr>
1660<tr><td>&nbsp;&nbsp;16.8 [cpp.predefined]</td><td></td><td></td><td></td><td></td><td></td></tr>
1661<tr><td>A [gram]</td><td></td><td></td><td></td><td></td><td></td></tr>
1662<tr><td>&nbsp;&nbsp;A.1 [gram.key]</td><td></td><td></td><td></td><td></td><td></td></tr>
1663<tr><td>&nbsp;&nbsp;A.2 [gram.lex]</td><td></td><td></td><td></td><td></td><td></td></tr>
1664<tr><td>&nbsp;&nbsp;A.3 [gram.basic]</td><td></td><td></td><td></td><td></td><td></td></tr>
1665<tr><td>&nbsp;&nbsp;A.4 [gram.expr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1666<tr><td>&nbsp;&nbsp;A.5 [gram.stmt]</td><td></td><td></td><td></td><td></td><td></td></tr>
1667<tr><td>&nbsp;&nbsp;A.6 [gram.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1668<tr><td>&nbsp;&nbsp;A.7 [gram.decl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1669<tr><td>&nbsp;&nbsp;A.8 [gram.class]</td><td></td><td></td><td></td><td></td><td></td></tr>
1670<tr><td>&nbsp;&nbsp;A.9 [gram.derived]</td><td></td><td></td><td></td><td></td><td></td></tr>
1671<tr><td>&nbsp;&nbsp;A.10 [gram.special]</td><td></td><td></td><td></td><td></td><td></td></tr>
1672<tr><td>&nbsp;&nbsp;A.11 [gram.over]</td><td></td><td></td><td></td><td></td><td></td></tr>
1673<tr><td>&nbsp;&nbsp;A.12 [gram.temp]</td><td></td><td></td><td></td><td></td><td></td></tr>
1674<tr><td>&nbsp;&nbsp;A.13 [gram.except]</td><td></td><td></td><td></td><td></td><td></td></tr>
1675<tr><td>&nbsp;&nbsp;A.14 [gram.cpp]</td><td></td><td></td><td></td><td></td><td></td></tr>
1676<tr><td>B [implimits]</td><td></td><td></td><td></td><td></td><td></td></tr>
1677<tr><td>C [diff]</td><td></td><td></td><td></td><td></td><td></td></tr>
1678<tr><td>&nbsp;&nbsp;C.1 [diff.iso]</td><td></td><td></td><td></td><td></td><td></td></tr>
1679<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.1 [diff.lex]</td><td></td><td></td><td></td><td></td><td></td></tr>
1680<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.2 [diff.basic]</td><td></td><td></td><td></td><td></td><td></td></tr>
1681<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.3 [diff.expr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1682<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.4 [diff.stat]</td><td></td><td></td><td></td><td></td><td></td></tr>
1683<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.5 [diff.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1684<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.6 [diff.decl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1685<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.7 [diff.class]</td><td></td><td></td><td></td><td></td><td></td></tr>
1686<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.8 [diff.special]</td><td></td><td></td><td></td><td></td><td></td></tr>
1687<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.1.9 [diff.cpp]</td><td></td><td></td><td></td><td></td><td></td></tr>
1688<tr><td>&nbsp;&nbsp;C.2 [diff.library]</td><td></td><td></td><td></td><td></td><td></td></tr>
1689<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.2.1 [diff.mods.to.headers]</td><td></td><td></td><td></td><td></td><td></td></tr>
1690<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.2.2 [diff.mods.to.definitions]</td><td></td><td></td><td></td><td></td><td></td></tr>
1691<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C.2.2.2 [diff.wchar.t]</td><td></td><td></td><td></td><td></td><td></td></tr>
1692<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C.2.2.3 [diff.header.iso646.h]</td><td></td><td></td><td></td><td></td><td></td></tr>
1693<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C.2.2.4 [diff.null]</td><td></td><td></td><td></td><td></td><td></td></tr>
1694<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.2.3 [diff.mods.to.declarations]</td><td></td><td></td><td></td><td></td><td></td></tr>
1695<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;C.2.4 [diff.mods.to.behavior]</td><td></td><td></td><td></td><td></td><td></td></tr>
1696<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C.2.4.1 [diff.offsetof]</td><td></td><td></td><td></td><td></td><td></td></tr>
1697<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C.2.4.2 [diff.malloc]</td><td></td><td></td><td></td><td></td><td></td></tr>
1698<tr><td>D [depr]</td><td></td><td></td><td></td><td></td><td></td></tr>
1699<tr><td>&nbsp;&nbsp;D.1 [depr.incr.bool]</td><td></td><td></td><td></td><td></td><td></td></tr>
1700<tr><td>&nbsp;&nbsp;D.2 [depr.static]</td><td></td><td></td><td></td><td></td><td></td></tr>
1701<tr><td>&nbsp;&nbsp;D.3 [depr.access.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr>
1702<tr><td>&nbsp;&nbsp;D.4 [depr.string]</td><td></td><td></td><td></td><td></td><td></td></tr>
1703<tr><td>&nbsp;&nbsp;D.5 [depr.c.headers]</td><td></td><td></td><td></td><td></td><td></td></tr>
1704<tr><td>E [extendid]</td><td></td><td></td><td></td><td></td><td></td></tr>
1705<tr>
1706 <td colspan="6" align="center" bgcolor="#ffffcc">C++0x Features</td>
1707 <tr>
1708 <td>Explicit conversion operators (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf">N2437</a>)</td>
1709 <td class="complete" align="center">&#x2713;</td>
1710 <td class="medium" align="center"></td>
1711 <td class="advanced" align="center"></td>
1712 <td class="broken"></td>
1713 <td>No name mangling; ASTs don't contain calls to conversion operators</td>
Anders Carlssonc31a0ce2009-03-16 17:28:26 +00001714 </tr><tr>
1715 <td>Static assertions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.pdf">N1720</a>)</td>
1716 <td class="complete" align="center">&#x2713;</td>
1717 <td class="complete" align="center">&#x2713;</td>
1718 <td class="complete" align="center">&#x2713;</td>
1719 <td class="na">N/A</td>
1720 <td></td>
1721 </tr>
Cedric Venet3d658642009-02-14 20:20:19 +00001722</tr>
1723
1724</table>
1725
1726</div>
1727</body>
1728</html>