blob: a10151caf2d14aa95be1a4278adeb43819e277b9 [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" />
6 <title>Clang - Features and Goals</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</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>
23This page tracks the status of C++ support in Clang.</p>
24<table width="689" border="1">
25 <tr>
26 <td width="150"><h3>Feature</h3></td>
27 <td width="172"><h3>Example</h3></td>
28 <td width="345"><h3>Status</h3></td>
29 </tr>
30 <tr>
31 <td>C++ Keywords </td>
32 <td>reinterpret_cast</td>
33 <td>Full support.</td>
34 </tr>
35 <tr>
36 <td>C++ References</td>
37 <td>int &amp;x = ...;</td>
38 <td>Parser and Sema support in, partial Codegen support. </td>
39 </tr>
40 <tr>
41 <td>C++ Default arguments </td>
42 <td>void f(int x=0); </td>
43 <td>Full support. </td>
44 </tr>
45 <tr>
46 <td>C++ Namespaces</td>
47 <td>namespace A {<br/>
48 &nbsp;&nbsp;&nbsp;int x;<br/>
49 }</td>
50 <td>Parser and Sema support in, no Codegen support. </td>
51 </tr>
52 <tr>
53 <td>C++ Class definitions</td>
54 <td>class C {<br/>
55 public:<br/>
56 &nbsp;&nbsp;&nbsp;int getX() { return x; }<br/>
57 private:<br/>
58 &nbsp;&nbsp;&nbsp;int x;<br/>
59 };</td>
60 <td>Partial Parser and Sema support, no Codegen support. </td>
61 </tr>
Gabor Greif7727cb22008-07-02 12:31:13 +000062 <tr>
63 <td>Virtual functions</td>
64 <td>class C {<br/>
65 public:<br/>
66 &nbsp;&nbsp;&nbsp;virtual int doFoo() = 0;<br/>
67 };</td>
68 <td>Nonexistent</td>
69 </tr>
70 <tr>
71 <td>Templates</td>
72 <td>class C {<br/>
73 public:<br/>
74 &nbsp;&nbsp;&nbsp;template <typename T> T as();<br/>
75 };</td>
76 <td>Nonexistent</td>
77 </tr>
Argyrios Kyrtzidis84b7a802008-07-02 11:38:59 +000078</table>
79</div>
80</body>
81</html>