| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" | |
| "http://www.w3.org/TR/html4/strict.dtd"> | |
| <html> | |
| <head> | |
| <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> | |
| <title>Clang - C++ Support</title> | |
| <link type="text/css" rel="stylesheet" href="menu.css" /> | |
| <link type="text/css" rel="stylesheet" href="content.css" /> | |
| <style type="text/css"> | |
| </style> | |
| </head> | |
| <body> | |
| <!--#include virtual="menu.html.incl"--> | |
| <div id="content"> | |
| <!--*************************************************************************--> | |
| <h1>C++ Support in Clang</h1> | |
| <!--*************************************************************************--> | |
| <p> | |
| This page tracks the status of C++ support in Clang.<br> | |
| Currently most of the C++ features are missing; here you can find features that are at least partially supported in Clang. </p> | |
| <p> | |
| In this table, parser support means that the parser knows the grammar for | |
| the feature. "Sema" support means that we do type checking, report errors | |
| about misuses of the feature and build an AST. CodeGen support means that we | |
| actually produce LLVM code for the feature with the -emit-llvm option. | |
| </p> | |
| <table width="689" border="1" cellspacing="0"> | |
| <tr> | |
| <td width="150"><h3>Feature</h3></td> | |
| <td width="172"><h3>Example</h3></td> | |
| <td width="345"><h3>Status</h3></td> | |
| </tr> | |
| <tr> | |
| <td>Bool type </td> | |
| <td>bool x; </td> | |
| <td>Full support.</td> | |
| </tr> | |
| <tr> | |
| <td>wchar_t type </td> | |
| <td>wchar_t x; </td> | |
| <td>Parser and Sema support in, partial Codegen support.</td> | |
| </tr> | |
| <tr> | |
| <td>Named Casts </td> | |
| <td>static_cast<int>(x)</td> | |
| <td>Partial Parser and Sema support, no codegen.</td> | |
| </tr> | |
| <tr> | |
| <td>References</td> | |
| <td>int &x = ...;</td> | |
| <td>Parser and Sema support in, partial Codegen support.</td> | |
| </tr> | |
| <tr> | |
| <td>Default arguments </td> | |
| <td>void f(int x=0); </td> | |
| <td>Full support. </td> | |
| </tr> | |
| <tr> | |
| <td>Namespaces</td> | |
| <td>namespace A {<br/> | |
| int x;<br/> | |
| }</td> | |
| <td>Parser and Sema support in, no Codegen support.</td> | |
| </tr> | |
| <tr> | |
| <td>Class definitions</td> | |
| <td>class C {<br/> | |
| public:<br/> | |
| int getX() { return x; }<br/> | |
| private:<br/> | |
| int x;<br/> | |
| };</td> | |
| <td>Partial Parser and Sema support, no Codegen support.</td> | |
| </tr> | |
| </table> | |
| </div> | |
| </body> | |
| </html> |