1f4a2713aSLionel Sambuc<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2f4a2713aSLionel Sambuc "http://www.w3.org/TR/html4/strict.dtd"> 3f4a2713aSLionel Sambuc<html> 4f4a2713aSLionel Sambuc<head> 5f4a2713aSLionel Sambuc <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 6*0a6a1f1dSLionel Sambuc <title>Clang - C++1z, C++14, C++11 and C++98 Status</title> 7f4a2713aSLionel Sambuc <link type="text/css" rel="stylesheet" href="menu.css"> 8f4a2713aSLionel Sambuc <link type="text/css" rel="stylesheet" href="content.css"> 9f4a2713aSLionel Sambuc <style type="text/css"> 10f4a2713aSLionel Sambuc .none { background-color: #FFCCCC } 11f4a2713aSLionel Sambuc .partial { background-color: #FFE0B0 } 12f4a2713aSLionel Sambuc .svn { background-color: #FFFF99 } 13f4a2713aSLionel Sambuc .full { background-color: #CCFF99 } 14f4a2713aSLionel Sambuc .na { background-color: #DDDDDD } 15f4a2713aSLionel Sambuc span:target { background-color: #FFFFBB; outline: #DDDD55 solid thin; } 16f4a2713aSLionel Sambuc th { background-color: #FFDDAA } 17f4a2713aSLionel Sambuc </style> 18f4a2713aSLionel Sambuc</head> 19f4a2713aSLionel Sambuc<body> 20f4a2713aSLionel Sambuc 21f4a2713aSLionel Sambuc<!--#include virtual="menu.html.incl"--> 22f4a2713aSLionel Sambuc 23f4a2713aSLionel Sambuc<div id="content"> 24f4a2713aSLionel Sambuc 25f4a2713aSLionel Sambuc<!--*************************************************************************--> 26*0a6a1f1dSLionel Sambuc<h1>C++ Support in Clang</h1> 27f4a2713aSLionel Sambuc<!--*************************************************************************--> 28*0a6a1f1dSLionel Sambuc<p>Last updated: $Date: 2015/01/29 19:57:42 $</p> 29*0a6a1f1dSLionel Sambuc 30*0a6a1f1dSLionel Sambuc<p>Clang fully implements all published ISO C++ standards including <a 31*0a6a1f1dSLionel Sambuchref="#cxx11">C++11</a>, as well as the upcoming <a 32*0a6a1f1dSLionel Sambuchref="#cxx14">C++14</a> standard, and some parts of the fledgling <a 33*0a6a1f1dSLionel Sambuchref="#cxx17">C++1z</a> standard, 34*0a6a1f1dSLionel Sambucand is considered a production-quality C++ compiler. 35*0a6a1f1dSLionel Sambuc 36*0a6a1f1dSLionel Sambuc<p>The Clang community is continually striving to improve C++ standards 37*0a6a1f1dSLionel Sambuccompliance between releases by submitting and tracking <a 38*0a6a1f1dSLionel Sambuchref="cxx_dr_status.html">C++ Defect Reports</a> and implementing resolutions 39*0a6a1f1dSLionel Sambucas they become available.</p> 40*0a6a1f1dSLionel Sambuc 41*0a6a1f1dSLionel Sambuc<p>Experimental work is also under way to implement <a href="#ts">C++ Technical 42*0a6a1f1dSLionel SambucSpecifications</a> that will help drive the future of the C++ programming 43*0a6a1f1dSLionel Sambuclanguage.</p> 44*0a6a1f1dSLionel Sambuc 45*0a6a1f1dSLionel Sambuc<p>The <a href="http://llvm.org/bugs/">LLVM bug tracker</a> contains Clang 46*0a6a1f1dSLionel SambucC++ components that track known bugs with Clang's language conformance in 47*0a6a1f1dSLionel Sambuceach language mode.</p> 48f4a2713aSLionel Sambuc 49f4a2713aSLionel Sambuc<h2 id="cxx98">C++98 implementation status</h2> 50f4a2713aSLionel Sambuc 51*0a6a1f1dSLionel Sambuc<p>Clang implements all of the ISO C++ 1998 standard 52f4a2713aSLionel Sambuc (including the defects addressed in the ISO C++ 2003 standard) 53*0a6a1f1dSLionel Sambuc except for <tt>export</tt> (which was removed in C++11). 54f4a2713aSLionel Sambuc 55f4a2713aSLionel Sambuc<h2 id="cxx11">C++11 implementation status</h2> 56f4a2713aSLionel Sambuc 57*0a6a1f1dSLionel Sambuc <p>Clang 3.3 and later implement all of the <a 58f4a2713aSLionel Sambuc href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">ISO 59f4a2713aSLionel Sambuc C++ 2011 standard</a>. The following table describes the Clang version 60f4a2713aSLionel Sambuc in which each feature became available.</p> 61f4a2713aSLionel Sambuc 62f4a2713aSLionel Sambuc<p>By default, Clang builds C++ code according to the C++98 standard, with many 63f4a2713aSLionel SambucC++11 features accepted as extensions. You can use Clang in C++11 mode with the 64f4a2713aSLionel Sambuc<code>-std=c++11</code> option. Clang's C++11 mode can be used 65f4a2713aSLionel Sambucwith <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++, but 66f4a2713aSLionel Sambucpatches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a> 67f4a2713aSLionel Sambucwork with Clang in C++11 mode. Patches are also needed to make 68f4a2713aSLionel Sambuc<a href="libstdc++4.6-clang11.patch">libstdc++-4.6</a> 69f4a2713aSLionel Sambucand <a href="libstdc++4.7-clang11.patch">libstdc++-4.7</a> work with Clang 70f4a2713aSLionel Sambucreleases prior to version 3.2 in C++11 mode. <tt>thread_local</tt> support 71*0a6a1f1dSLionel Sambuccurrently requires the C++ runtime library from g++-4.8 or later.</p> 72f4a2713aSLionel Sambuc 73f4a2713aSLionel Sambuc<table width="689" border="1" cellspacing="0"> 74f4a2713aSLionel Sambuc <tr> 75f4a2713aSLionel Sambuc <th>Language Feature</th> 76f4a2713aSLionel Sambuc <th>C++11 Proposal</th> 77f4a2713aSLionel Sambuc <th>Available in Clang?</th> 78f4a2713aSLionel Sambuc </tr> 79f4a2713aSLionel Sambuc <tr> 80f4a2713aSLionel Sambuc <td>Rvalue references</td> 81f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html">N2118</a></td> 82f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 83f4a2713aSLionel Sambuc </tr> 84f4a2713aSLionel Sambuc <tr> 85f4a2713aSLionel Sambuc <td> Rvalue references for <code>*this</code></td> 86f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm">N2439</a></td> 87f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 88f4a2713aSLionel Sambuc </tr> 89f4a2713aSLionel Sambuc <tr> 90f4a2713aSLionel Sambuc <td>Initialization of class objects by rvalues</td> 91f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html">N1610</a></td> 92f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 93f4a2713aSLionel Sambuc </tr> 94f4a2713aSLionel Sambuc <tr> 95f4a2713aSLionel Sambuc <td>Non-static data member initializers</td> 96f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm">N2756</a></td> 97f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 98f4a2713aSLionel Sambuc </tr> 99f4a2713aSLionel Sambuc <tr> 100f4a2713aSLionel Sambuc <td>Variadic templates</td> 101f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf">N2242</a></td> 102f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 103f4a2713aSLionel Sambuc </tr> 104f4a2713aSLionel Sambuc <tr> 105f4a2713aSLionel Sambuc <td> Extending variadic template template parameters</td> 106f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf">N2555</a></td> 107f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 108f4a2713aSLionel Sambuc </tr> 109f4a2713aSLionel Sambuc <tr> 110f4a2713aSLionel Sambuc <td>Initializer lists</td> 111f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm">N2672</a></td> 112f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 113f4a2713aSLionel Sambuc </tr> 114f4a2713aSLionel Sambuc <tr> 115f4a2713aSLionel Sambuc <td>Static assertions</td> 116f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html">N1720</a></td> 117f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 118f4a2713aSLionel Sambuc </tr> 119f4a2713aSLionel Sambuc <tr> 120f4a2713aSLionel Sambuc <td><code>auto</code>-typed variables</td> 121f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf">N1984</a></td> 122f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 123f4a2713aSLionel Sambuc </tr> 124f4a2713aSLionel Sambuc <tr> 125f4a2713aSLionel Sambuc <td> Multi-declarator <code>auto</code></td> 126f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf">N1737</a></td> 127f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 128f4a2713aSLionel Sambuc </tr> 129f4a2713aSLionel Sambuc <tr> 130f4a2713aSLionel Sambuc <td> Removal of auto as a storage-class specifier</td> 131f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm">N2546</a></td> 132f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 133f4a2713aSLionel Sambuc </tr> 134f4a2713aSLionel Sambuc <tr> 135f4a2713aSLionel Sambuc <td> New function declarator syntax</td> 136f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">N2541</a></td> 137f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 138f4a2713aSLionel Sambuc </tr> 139f4a2713aSLionel Sambuc <tr> 140f4a2713aSLionel Sambuc <td>Lambda expressions</td> 141f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf">N2927</a></td> 142f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 143f4a2713aSLionel Sambuc </tr> 144f4a2713aSLionel Sambuc <tr> 145f4a2713aSLionel Sambuc <td>Declared type of an expression</td> 146f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf">N2343</a></td> 147f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 148f4a2713aSLionel Sambuc </tr> 149f4a2713aSLionel Sambuc <tr> 150f4a2713aSLionel Sambuc <td> Incomplete return types</td> 151f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf">N3276</a></td> 152f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 153f4a2713aSLionel Sambuc </tr> 154f4a2713aSLionel Sambuc <tr> 155f4a2713aSLionel Sambuc <td>Right angle brackets</td> 156f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html">N1757</a></td> 157f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 158f4a2713aSLionel Sambuc </tr> 159f4a2713aSLionel Sambuc <tr> 160f4a2713aSLionel Sambuc <td>Default template arguments for function templates</td> 161f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226">DR226</a></td> 162f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 163f4a2713aSLionel Sambuc </tr> 164f4a2713aSLionel Sambuc <tr> 165f4a2713aSLionel Sambuc <td>Solving the SFINAE problem for expressions</td> 166f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html">DR339</a></td> 167f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 168f4a2713aSLionel Sambuc </tr> 169f4a2713aSLionel Sambuc <tr> 170f4a2713aSLionel Sambuc <td>Alias templates</td> 171f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf">N2258</a></td> 172f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 173f4a2713aSLionel Sambuc </tr> 174f4a2713aSLionel Sambuc <tr> 175f4a2713aSLionel Sambuc <td>Extern templates</td> 176f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm">N1987</a></td> 177f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 178f4a2713aSLionel Sambuc </tr> 179f4a2713aSLionel Sambuc <tr> 180f4a2713aSLionel Sambuc <td>Null pointer constant</td> 181f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf">N2431</a></td> 182f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 183f4a2713aSLionel Sambuc </tr> 184f4a2713aSLionel Sambuc <tr> 185f4a2713aSLionel Sambuc <td>Strongly-typed enums</td> 186f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf">N2347</a></td> 187f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 188f4a2713aSLionel Sambuc </tr> 189f4a2713aSLionel Sambuc <tr> 190f4a2713aSLionel Sambuc <td>Forward declarations for enums</td> 191f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf">N2764</a> 192f4a2713aSLionel Sambuc <br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1206">DR1206</a></td> 193f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 194f4a2713aSLionel Sambuc </tr> 195f4a2713aSLionel Sambuc <tr> 196*0a6a1f1dSLionel Sambuc <td>Standardized attribute syntax</td> 197f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">N2761</a></td> 198f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3 <a href="#n2761">(1)</a></td> 199f4a2713aSLionel Sambuc </tr> 200f4a2713aSLionel Sambuc <tr> 201f4a2713aSLionel Sambuc <td>Generalized constant expressions</td> 202f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">N2235</a></td> 203f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 204f4a2713aSLionel Sambuc </tr> 205f4a2713aSLionel Sambuc <tr> 206f4a2713aSLionel Sambuc <td>Alignment support</td> 207f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf">N2341</a></td> 208f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3</td> 209f4a2713aSLionel Sambuc </tr> 210*0a6a1f1dSLionel Sambuc <tr> 211*0a6a1f1dSLionel Sambuc <td>Conditionally-support behavior</td> 212*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1627.pdf">N1627</a></td> 213*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 214*0a6a1f1dSLionel Sambuc </tr> 215*0a6a1f1dSLionel Sambuc <tr> 216*0a6a1f1dSLionel Sambuc <td>Changing undefined behavior into diagnosable errors</td> 217*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1727.pdf">N1727</a></td> 218*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 219*0a6a1f1dSLionel Sambuc </tr> 220f4a2713aSLionel Sambuc <tr> 221f4a2713aSLionel Sambuc <td>Delegating constructors</td> 222f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf">N1986</a></td> 223f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 224f4a2713aSLionel Sambuc </tr> 225f4a2713aSLionel Sambuc <tr> 226f4a2713aSLionel Sambuc <td>Inheriting constructors</td> 227f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm">N2540</a></td> 228f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3</td> 229f4a2713aSLionel Sambuc </tr> 230f4a2713aSLionel Sambuc <tr> 231f4a2713aSLionel Sambuc <td>Explicit conversion operators</td> 232f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf">N2437</a></td> 233f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 234f4a2713aSLionel Sambuc </tr> 235f4a2713aSLionel Sambuc <tr> 236f4a2713aSLionel Sambuc <td>New character types</td> 237f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html">N2249</a></td> 238f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 239f4a2713aSLionel Sambuc </tr> 240f4a2713aSLionel Sambuc <tr> 241f4a2713aSLionel Sambuc <td>Unicode string literals</td> 242f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm">N2442</a></td> 243f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 244f4a2713aSLionel Sambuc </tr> 245f4a2713aSLionel Sambuc <tr> 246f4a2713aSLionel Sambuc <td>Raw string literals</td> 247f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm">N2442</a></td> 248f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 249f4a2713aSLionel Sambuc </tr> 250f4a2713aSLionel Sambuc <tr> 251f4a2713aSLionel Sambuc <td>Universal character names in literals</td> 252f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html">N2170</a></td> 253f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 254f4a2713aSLionel Sambuc </tr> 255f4a2713aSLionel Sambuc <tr> 256f4a2713aSLionel Sambuc <td>User-defined literals</td> 257f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf">N2765</a></td> 258f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 259f4a2713aSLionel Sambuc </tr> 260f4a2713aSLionel Sambuc <tr> 261f4a2713aSLionel Sambuc <td>Standard Layout Types</td> 262f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm">N2342</a></td> 263f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 264f4a2713aSLionel Sambuc </tr> 265f4a2713aSLionel Sambuc <tr> 266f4a2713aSLionel Sambuc <td>Defaulted functions</td> 267f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm">N2346</a></td> 268f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 269f4a2713aSLionel Sambuc </tr> 270f4a2713aSLionel Sambuc <tr> 271f4a2713aSLionel Sambuc <td>Deleted functions</td> 272f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm">N2346</a></td> 273f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 274f4a2713aSLionel Sambuc </tr> 275f4a2713aSLionel Sambuc <tr> 276f4a2713aSLionel Sambuc <td>Extended friend declarations</td> 277f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf">N1791</a></td> 278f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 279f4a2713aSLionel Sambuc </tr> 280f4a2713aSLionel Sambuc <tr> 281f4a2713aSLionel Sambuc <td>Extending <code>sizeof</code></td> 282f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html">N2253</a> 283f4a2713aSLionel Sambuc <br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#850">DR850</a></td> 284f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 285f4a2713aSLionel Sambuc </tr> 286f4a2713aSLionel Sambuc <tr> 287f4a2713aSLionel Sambuc <td>Inline namespaces</td> 288f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm">N2535</a></td> 289f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 290f4a2713aSLionel Sambuc </tr> 291f4a2713aSLionel Sambuc <tr> 292f4a2713aSLionel Sambuc <td>Unrestricted unions</td> 293f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf">N2544</a></td> 294f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 295f4a2713aSLionel Sambuc </tr> 296f4a2713aSLionel Sambuc <tr> 297f4a2713aSLionel Sambuc <td>Local and unnamed types as template arguments</td> 298f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">N2657</a></td> 299f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 300f4a2713aSLionel Sambuc </tr> 301f4a2713aSLionel Sambuc <tr> 302f4a2713aSLionel Sambuc <td>Range-based for</td> 303f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html">N2930</a></td> 304f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 305f4a2713aSLionel Sambuc </tr> 306f4a2713aSLionel Sambuc <tr> 307f4a2713aSLionel Sambuc <td>Explicit virtual overrides</td> 308f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">N2928</a> 309f4a2713aSLionel Sambuc <br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">N3206</a> 310f4a2713aSLionel Sambuc <br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">N3272</a></td> 311f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 312f4a2713aSLionel Sambuc </tr> 313f4a2713aSLionel Sambuc <tr> 314f4a2713aSLionel Sambuc <td>Minimal support for garbage collection and reachability-based leak detection</td> 315f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm">N2670</a></td> 316*0a6a1f1dSLionel Sambuc <td class="na" align="center">N/A <a href="#n2670">(2)</a></td> 317f4a2713aSLionel Sambuc </tr> 318f4a2713aSLionel Sambuc <tr> 319f4a2713aSLionel Sambuc <td>Allowing move constructors to throw [noexcept]</td> 320f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html">N3050</a></td> 321f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 322f4a2713aSLionel Sambuc </tr> 323f4a2713aSLionel Sambuc <tr> 324f4a2713aSLionel Sambuc <td>Defining move special member functions</td> 325f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html">N3053</a></td> 326f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.0</td> 327f4a2713aSLionel Sambuc </tr> 328f4a2713aSLionel Sambuc 329f4a2713aSLionel Sambuc <tr class="separator"> 330f4a2713aSLionel Sambuc <th align="center" colspan="3">Concurrency</th> 331f4a2713aSLionel Sambuc </tr> 332f4a2713aSLionel Sambuc <tr> 333f4a2713aSLionel Sambuc <td>Sequence points</td> 334f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html">N2239</a></td> 335f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3</td> 336f4a2713aSLionel Sambuc </tr> 337f4a2713aSLionel Sambuc <tr> 338f4a2713aSLionel Sambuc <td>Atomic operations</td> 339f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html">N2427</a></td> 340f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 341f4a2713aSLionel Sambuc </tr> 342f4a2713aSLionel Sambuc <tr> 343f4a2713aSLionel Sambuc <td>Strong Compare and Exchange</td> 344f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748.html">N2748</a></td> 345*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.1 <a href="#n2748">(3)</a></td> 346f4a2713aSLionel Sambuc </tr> 347f4a2713aSLionel Sambuc <tr> 348f4a2713aSLionel Sambuc <td>Bidirectional Fences</td> 349f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm">N2752</a></td> 350f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 351f4a2713aSLionel Sambuc </tr> 352f4a2713aSLionel Sambuc 353f4a2713aSLionel Sambuc <tr> 354f4a2713aSLionel Sambuc <td>Memory model</td> 355f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm">N2429</a></td> 356f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.2</td> 357f4a2713aSLionel Sambuc </tr> 358f4a2713aSLionel Sambuc <tr> 359f4a2713aSLionel Sambuc <td>Data-dependency ordering: atomics and memory model</td> 360f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm">N2664</a></td> 361*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.2 <a href="#n2664">(4)</a></td> 362f4a2713aSLionel Sambuc </tr> 363f4a2713aSLionel Sambuc <tr> 364f4a2713aSLionel Sambuc <td>Propagating exceptions</td> 365f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html">N2179</a></td> 366f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 367f4a2713aSLionel Sambuc </tr> 368f4a2713aSLionel Sambuc <tr> 369f4a2713aSLionel Sambuc <td>Allow atomics use in signal handlers</td> 370f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm">N2547</a></td> 371f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.1</td> 372f4a2713aSLionel Sambuc </tr> 373f4a2713aSLionel Sambuc <tr> 374f4a2713aSLionel Sambuc <td>Thread-local storage</td> 375f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm">N2659</a></td> 376f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3</td> 377f4a2713aSLionel Sambuc </tr> 378f4a2713aSLionel Sambuc <tr> 379f4a2713aSLionel Sambuc <td>Dynamic initialization and destruction with concurrency</td> 380f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">N2660</a></td> 381f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 382f4a2713aSLionel Sambuc </tr> 383f4a2713aSLionel Sambuc 384f4a2713aSLionel Sambuc <tr class="separator"> 385f4a2713aSLionel Sambuc <th align="center" colspan="3">C99 Features in C++11</th> 386f4a2713aSLionel Sambuc </tr> 387f4a2713aSLionel Sambuc <tr> 388f4a2713aSLionel Sambuc <td><code>__func__</code> predefined identifier</td> 389f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm">N2340</a></td> 390f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 391f4a2713aSLionel Sambuc </tr> 392f4a2713aSLionel Sambuc <tr> 393f4a2713aSLionel Sambuc <td>C99 preprocessor</td> 394f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm">N1653</a></td> 395f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 396f4a2713aSLionel Sambuc </tr> 397f4a2713aSLionel Sambuc <tr> 398f4a2713aSLionel Sambuc <td><code>long long</code></td> 399f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf">N1811</a></td> 400f4a2713aSLionel Sambuc <td class="full" align="center">Clang 2.9</td> 401f4a2713aSLionel Sambuc </tr> 402f4a2713aSLionel Sambuc <tr> 403f4a2713aSLionel Sambuc <td>Extended integral types</td> 404f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf">N1988</a></td> 405*0a6a1f1dSLionel Sambuc <td class="na" align="center">N/A <a href="#n1988">(5)</a></td> 406f4a2713aSLionel Sambuc </tr> 407f4a2713aSLionel Sambuc</table> 408f4a2713aSLionel Sambuc 409f4a2713aSLionel Sambuc<p> 410f4a2713aSLionel Sambuc<span id="n2761">(1): The <code>[[carries_dependency]]</code> attribute 411f4a2713aSLionel Sambuchas no effect.</span><br> 412*0a6a1f1dSLionel Sambuc<span id="n2670">(2): No compiler changes are required for an implementation 413*0a6a1f1dSLionel Sambucsuch as Clang that does not provide garbage collection.</span><br> 414*0a6a1f1dSLionel Sambuc<span id="n2748">(3): All compare-exchange operations are emitted as 415f4a2713aSLionel Sambucstrong compare-exchanges.</span><br> 416*0a6a1f1dSLionel Sambuc<span id="n2664">(4): <code>memory_order_consume</code> is lowered to 417f4a2713aSLionel Sambuc<code>memory_order_acquire</code>.</span><br> 418*0a6a1f1dSLionel Sambuc<span id="n1988">(5): No compiler changes are required for an implementation 419*0a6a1f1dSLionel Sambucsuch as Clang that does not provide any extended integer types. 420*0a6a1f1dSLionel Sambuc<code>__int128</code> is not treated as an extended integer type, 421*0a6a1f1dSLionel Sambucbecause changing <code>intmax_t</code> would be an ABI-incompatible 422*0a6a1f1dSLionel Sambucchange.</span> 423f4a2713aSLionel Sambuc</p> 424f4a2713aSLionel Sambuc 425*0a6a1f1dSLionel Sambuc<h2 id="cxx14">C++14 implementation status</h2> 426f4a2713aSLionel Sambuc 427*0a6a1f1dSLionel Sambuc<p>Clang 3.4 and later implement all of the Draft International Standard (see <a 428*0a6a1f1dSLionel Sambuchref="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3797.pdf">most 429*0a6a1f1dSLionel Sambucrecent publicly available draft</a>) 430*0a6a1f1dSLionel Sambucof the upcoming C++14 language standard. The following table describes the 431*0a6a1f1dSLionel SambucClang version in which each feature became available.</p> 432f4a2713aSLionel Sambuc 433*0a6a1f1dSLionel Sambuc<p>You can use Clang in C++14 mode with the <code>-std=c++14</code> option 434*0a6a1f1dSLionel Sambuc(use <code>-std=c++1y</code> in Clang 3.4 and earlier).</p> 435f4a2713aSLionel Sambuc 436f4a2713aSLionel Sambuc<table width="689" border="1" cellspacing="0"> 437f4a2713aSLionel Sambuc <tr> 438f4a2713aSLionel Sambuc <th>Language Feature</th> 439*0a6a1f1dSLionel Sambuc <th>C++14 Proposal</th> 440f4a2713aSLionel Sambuc <th>Available in Clang?</th> 441f4a2713aSLionel Sambuc </tr> 442f4a2713aSLionel Sambuc <tr> 443f4a2713aSLionel Sambuc <td>Tweak to certain C++ contextual conversions</td> 444f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf">N3323</a></td> 445*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 446f4a2713aSLionel Sambuc </tr> 447f4a2713aSLionel Sambuc <tr> 448f4a2713aSLionel Sambuc <td>Binary literals</td> 449f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf">N3472</a></td> 450f4a2713aSLionel Sambuc <td class="full" align="center">Yes</td> 451f4a2713aSLionel Sambuc </tr> 452f4a2713aSLionel Sambuc <tr> 453f4a2713aSLionel Sambuc <td>decltype(auto)</td> 454f4a2713aSLionel Sambuc <td rowspan=2 style="vertical-align:middle"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html">N3638</a></td> 455f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3</td> 456f4a2713aSLionel Sambuc </tr> 457f4a2713aSLionel Sambuc <tr> 458f4a2713aSLionel Sambuc <td>Return type deduction for normal functions</td> 459*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 460f4a2713aSLionel Sambuc </tr> 461f4a2713aSLionel Sambuc <tr> 462f4a2713aSLionel Sambuc <td>Initialized lambda captures</td> 463f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html">N3648</a></td> 464*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 465f4a2713aSLionel Sambuc </tr> 466f4a2713aSLionel Sambuc <tr> 467f4a2713aSLionel Sambuc <td>Generic lambdas</td> 468f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html">N3649</a></td> 469*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 470f4a2713aSLionel Sambuc </tr> 471f4a2713aSLionel Sambuc <tr> 472f4a2713aSLionel Sambuc <td>Variable templates</td> 473f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf">N3651</a></td> 474*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 475f4a2713aSLionel Sambuc </tr> 476f4a2713aSLionel Sambuc <tr> 477f4a2713aSLionel Sambuc <td>Relaxing requirements on constexpr functions</td> 478f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html">N3652</a></td> 479*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 480f4a2713aSLionel Sambuc </tr> 481f4a2713aSLionel Sambuc <tr> 482f4a2713aSLionel Sambuc <td>Member initializers and aggregates</td> 483f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">N3653</a></td> 484f4a2713aSLionel Sambuc <td class="full" align="center">Clang 3.3</td> 485f4a2713aSLionel Sambuc </tr> 486f4a2713aSLionel Sambuc <tr> 487f4a2713aSLionel Sambuc <td>Clarifying memory allocation</td> 488f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html">N3664</a></td> 489*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 490f4a2713aSLionel Sambuc </tr> 491f4a2713aSLionel Sambuc <tr> 492f4a2713aSLionel Sambuc <td><tt>[[deprecated]]</tt> attribute</td> 493f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html">N3760</a></td> 494*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 495f4a2713aSLionel Sambuc </tr> 496f4a2713aSLionel Sambuc <tr> 497f4a2713aSLionel Sambuc <td>Single quotation mark as digit separator</td> 498f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf">N3781</a></td> 499*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 500f4a2713aSLionel Sambuc </tr> 501f4a2713aSLionel Sambuc <tr> 502f4a2713aSLionel Sambuc <td>C++ Sized Deallocation</td> 503f4a2713aSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3778.html">N3778</a></td> 504*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.4</td> 505f4a2713aSLionel Sambuc </tr> 506f4a2713aSLionel Sambuc</table> 507f4a2713aSLionel Sambuc 508f4a2713aSLionel Sambuc<h2 id="cxx17">C++1z implementation status</h2> 509f4a2713aSLionel Sambuc 510*0a6a1f1dSLionel Sambuc<p>Clang has <b>highly experimental</b> support for some proposed features of 511*0a6a1f1dSLionel Sambucthe C++ standard following C++14, 512f4a2713aSLionel Sambucprovisionally named C++1z. The following table describes which C++1z features 513f4a2713aSLionel Sambuchave been implemented in Clang and in which Clang version they became 514f4a2713aSLionel Sambucavailable.</p> 515f4a2713aSLionel Sambuc 516*0a6a1f1dSLionel Sambuc<p>Note that support for these features may change or be removed without notice, 517*0a6a1f1dSLionel Sambucas the draft C++1z standard evolves.</p> 518*0a6a1f1dSLionel Sambuc 519f4a2713aSLionel Sambuc<p>You can use Clang in C++1z mode with the <code>-std=c++1z</code> option.</p> 520*0a6a1f1dSLionel Sambuc 521*0a6a1f1dSLionel Sambuc<table width="689" border="1" cellspacing="0"> 522*0a6a1f1dSLionel Sambuc <tr> 523*0a6a1f1dSLionel Sambuc <th>Language Feature</th> 524*0a6a1f1dSLionel Sambuc <th>C++1z Proposal</th> 525*0a6a1f1dSLionel Sambuc <th>Available in Clang?</th> 526*0a6a1f1dSLionel Sambuc </tr> 527*0a6a1f1dSLionel Sambuc <!-- Issaquah papers --> 528*0a6a1f1dSLionel Sambuc <tr> 529*0a6a1f1dSLionel Sambuc <td><tt>static_assert</tt> with no message</td> 530*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3928.pdf">N3928</a></td> 531*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.5</td> 532*0a6a1f1dSLionel Sambuc </tr> 533*0a6a1f1dSLionel Sambuc <!-- Rapperswil papers --> 534*0a6a1f1dSLionel Sambuc <tr> 535*0a6a1f1dSLionel Sambuc <td>Disabling trigraph expansion by default</td> 536*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html">N4086</a></td> 537*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.5</td> 538*0a6a1f1dSLionel Sambuc </tr> 539*0a6a1f1dSLionel Sambuc <!-- 540*0a6a1f1dSLionel Sambuc <tr> 541*0a6a1f1dSLionel Sambuc <td rowspan="2">Terse range-based for loops (removed from C++1z)</td> 542*0a6a1f1dSLionel Sambuc <td rowspan="2"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3994.htm">N3994</a></td> 543*0a6a1f1dSLionel Sambuc <td class="none" align="center">Clang 3.5: Yes</td> 544*0a6a1f1dSLionel Sambuc </tr> 545*0a6a1f1dSLionel Sambuc <tr> 546*0a6a1f1dSLionel Sambuc <td class="svn" align="center">SVN: No</td> 547*0a6a1f1dSLionel Sambuc </tr> 548f4a2713aSLionel Sambuc --> 549*0a6a1f1dSLionel Sambuc <tr> 550*0a6a1f1dSLionel Sambuc <td><tt>typename</tt> in a template template parameter</td> 551*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html">N4051</a></td> 552*0a6a1f1dSLionel Sambuc <td class="full" align="center">Clang 3.5</td> 553*0a6a1f1dSLionel Sambuc </tr> 554*0a6a1f1dSLionel Sambuc <tr> 555*0a6a1f1dSLionel Sambuc <td>New <tt>auto</tt> rules for direct-list-initialization 556*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html">N3922</a></td> 557*0a6a1f1dSLionel Sambuc <td class="none" align="center">No</td> 558*0a6a1f1dSLionel Sambuc </tr> 559*0a6a1f1dSLionel Sambuc <!-- Urbana papers --> 560*0a6a1f1dSLionel Sambuc <tr> 561*0a6a1f1dSLionel Sambuc <td>Fold expressions</td> 562*0a6a1f1dSLionel Sambuc <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html">-->N4295<!--</a>--></td> 563*0a6a1f1dSLionel Sambuc <td class="svn" align="center">SVN</td> 564*0a6a1f1dSLionel Sambuc </tr> 565*0a6a1f1dSLionel Sambuc <tr> 566*0a6a1f1dSLionel Sambuc <td><tt>u8</tt> character literals</td> 567*0a6a1f1dSLionel Sambuc <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html">-->N4267<!--</a>--></td> 568*0a6a1f1dSLionel Sambuc <td class="svn" align="center">SVN</td> 569*0a6a1f1dSLionel Sambuc </tr> 570*0a6a1f1dSLionel Sambuc <tr> 571*0a6a1f1dSLionel Sambuc <td>Nested namespace definition</td> 572*0a6a1f1dSLionel Sambuc <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html">-->N4230<!--</a>--></td> 573*0a6a1f1dSLionel Sambuc <td class="svn" align="center">SVN</td> 574*0a6a1f1dSLionel Sambuc </tr> 575*0a6a1f1dSLionel Sambuc <tr> 576*0a6a1f1dSLionel Sambuc <td>Attributes for namespaces and enumerators</td> 577*0a6a1f1dSLionel Sambuc <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html">-->N4266<!--</a>--></td> 578*0a6a1f1dSLionel Sambuc <td class="svn" align="center">SVN</td> 579*0a6a1f1dSLionel Sambuc </tr> 580*0a6a1f1dSLionel Sambuc <tr> 581*0a6a1f1dSLionel Sambuc <td>Allow constant evaluation for all non-type template arguments</td> 582*0a6a1f1dSLionel Sambuc <td><!--<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html">-->N4268<!--</a>--></td> 583*0a6a1f1dSLionel Sambuc <td class="svn" align="center">SVN</td> 584*0a6a1f1dSLionel Sambuc </tr> 585*0a6a1f1dSLionel Sambuc</table> 586*0a6a1f1dSLionel Sambuc 587*0a6a1f1dSLionel Sambuc<h2 id="ts">Technical specifications and standing documents</h2> 588*0a6a1f1dSLionel Sambuc 589*0a6a1f1dSLionel Sambuc<p>ISO C++ also publishes a number of documents describing additional language 590*0a6a1f1dSLionel Sambucand library features that are not part of standard C++. The following table 591*0a6a1f1dSLionel Sambucdescribes which language features have been implemented in Clang and in which 592*0a6a1f1dSLionel SambucClang version they became available:</p> 593*0a6a1f1dSLionel Sambuc 594*0a6a1f1dSLionel Sambuc<table width="689" border="1" cellspacing="0"> 595*0a6a1f1dSLionel Sambuc <tr> 596*0a6a1f1dSLionel Sambuc <th>Document</th> 597*0a6a1f1dSLionel Sambuc <th>Latest draft</th> 598*0a6a1f1dSLionel Sambuc <th>Available in Clang?</th> 599*0a6a1f1dSLionel Sambuc </tr> 600*0a6a1f1dSLionel Sambuc <tr> 601*0a6a1f1dSLionel Sambuc <td rowspan="2">SD-6: SG10 feature test recommendations</td> 602*0a6a1f1dSLionel Sambuc <td rowspan="2"><a href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td> 603*0a6a1f1dSLionel Sambuc <td class="full" align="center"> 604*0a6a1f1dSLionel Sambuc Clang 3.4 (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3745">N3745</a>)</br> 605*0a6a1f1dSLionel Sambuc </td> 606*0a6a1f1dSLionel Sambuc </tr> 607*0a6a1f1dSLionel Sambuc <tr> 608*0a6a1f1dSLionel Sambuc <td class="svn" align="center"> 609*0a6a1f1dSLionel Sambuc SVN (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4200">N4200</a>)</a> 610*0a6a1f1dSLionel Sambuc </td> 611*0a6a1f1dSLionel Sambuc </tr> 612*0a6a1f1dSLionel Sambuc <tr> 613*0a6a1f1dSLionel Sambuc <td>[DRAFT TS] Array extensions (arrays of runtime bound)</td> 614*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3820.html">N3820</a></td> 615*0a6a1f1dSLionel Sambuc <td class="none" align="center">No</td> 616*0a6a1f1dSLionel Sambuc </tr> 617*0a6a1f1dSLionel Sambuc <tr> 618*0a6a1f1dSLionel Sambuc <td>[DRAFT TS] Library fundamentals (invocation type traits)</td> 619*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3908.html">N3908</a></td> 620*0a6a1f1dSLionel Sambuc <td class="none" align="center">No</td> 621*0a6a1f1dSLionel Sambuc </tr> 622*0a6a1f1dSLionel Sambuc <tr> 623*0a6a1f1dSLionel Sambuc <td>[DRAFT TS] Concepts</td> 624*0a6a1f1dSLionel Sambuc <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3929.pdf">N3929</a></td> 625*0a6a1f1dSLionel Sambuc <td class="none" align="center">No</td> 626*0a6a1f1dSLionel Sambuc </tr> 627*0a6a1f1dSLionel Sambuc</table> 628f4a2713aSLionel Sambuc 629f4a2713aSLionel Sambuc</div> 630f4a2713aSLionel Sambuc</body> 631f4a2713aSLionel Sambuc</html> 632