blob: 88de2f97b08a11efffff96be282ce18de8099960 [file] [log] [blame]
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +00001<!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" />
Argyrios Kyrtzidis682f77b2008-07-02 13:44:11 +00006 <title>Clang - C++ Support</title>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +00007 <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</style>
11</head>
12<body>
13
14<!--#include virtual="menu.html.incl"-->
15
16<div id="content">
17
18<!--*************************************************************************-->
19<h1>C++ Support in Clang</h1>
20<!--*************************************************************************-->
21
22<p>
Argyrios Kyrtzidisb1ca7932008-07-02 15:10:46 +000023This page tracks the status of C++ support in Clang.<br>
24Currently most of the C++ features are missing; here you can find features that are at least partially supported in Clang. </p>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000025<table width="689" border="1">
26 <tr>
27 <td width="150"><h3>Feature</h3></td>
28 <td width="172"><h3>Example</h3></td>
29 <td width="345"><h3>Status</h3></td>
30 </tr>
31 <tr>
Argyrios Kyrtzidisbe5a1052008-07-02 14:16:29 +000032 <td>Keywords </td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000033 <td>reinterpret_cast</td>
34 <td>Full support.</td>
35 </tr>
36 <tr>
Argyrios Kyrtzidisbe5a1052008-07-02 14:16:29 +000037 <td>References</td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000038 <td>int &amp;x = ...;</td>
Gabor Greif13234802008-07-02 12:34:47 +000039 <td>Parser and Sema support in, partial Codegen support.</td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000040 </tr>
41 <tr>
Argyrios Kyrtzidisbe5a1052008-07-02 14:16:29 +000042 <td>Default arguments </td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000043 <td>void f(int x=0); </td>
44 <td>Full support. </td>
45 </tr>
46 <tr>
Argyrios Kyrtzidisbe5a1052008-07-02 14:16:29 +000047 <td>Namespaces</td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000048 <td>namespace A {<br/>
49 &nbsp;&nbsp;&nbsp;int x;<br/>
50 }</td>
Gabor Greif13234802008-07-02 12:34:47 +000051 <td>Parser and Sema support in, no Codegen support.</td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000052 </tr>
53 <tr>
Argyrios Kyrtzidisbe5a1052008-07-02 14:16:29 +000054 <td>Class definitions</td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000055 <td>class C {<br/>
56 public:<br/>
57 &nbsp;&nbsp;&nbsp;int getX() { return x; }<br/>
58 private:<br/>
59 &nbsp;&nbsp;&nbsp;int x;<br/>
60 };</td>
Gabor Greif13234802008-07-02 12:34:47 +000061 <td>Partial Parser and Sema support, no Codegen support.</td>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000062 </tr>
Gabor Greif7727cb22008-07-02 12:31:13 +000063 <tr>
64 <td>Virtual functions</td>
65 <td>class C {<br/>
66 public:<br/>
67 &nbsp;&nbsp;&nbsp;virtual int doFoo() = 0;<br/>
68 };</td>
Gabor Greif13234802008-07-02 12:34:47 +000069 <td>Nonexistent.</td>
Gabor Greif7727cb22008-07-02 12:31:13 +000070 </tr>
71 <tr>
72 <td>Templates</td>
73 <td>class C {<br/>
74 public:<br/>
Gabor Greif13234802008-07-02 12:34:47 +000075 &nbsp;&nbsp;&nbsp;template &lt;typename T&gt; T as();<br/>
Gabor Greif7727cb22008-07-02 12:31:13 +000076 };</td>
Gabor Greif13234802008-07-02 12:34:47 +000077 <td>Nonexistent.</td>
Gabor Greif7727cb22008-07-02 12:31:13 +000078 </tr>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000079</table>
80</div>
81</body>
82</html>