Namespaces
Variants

cpp/compiler support: Difference between revisions

From cppreference.com
< cpp
Default constructible and assignable stateless lambdas
Morwenn (talk | contribs)
<version>
Line 198: Line 198:
| clang={{yes|6}}
| clang={{yes|6}}
| gcc={{yes|8}}
| gcc={{yes|8}}
}}
}}
}}
}}

Revision as of 09:39, 15 June 2018

 
 
C++ language
General topics
Flow control
Conditional execution statements
if
Iteration statements (loops)
for
range-for (C++11)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications (until C++17*)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
explicit (C++11)
static

Special member functions
Templates
Miscellaneous
 

The following table presents compiler support for new C++ features. These include C++11, C++14, C++17, and later accepted revisions to the standard, as well as various technical specifications.

C++2a features

Note that this list may change, as the draft C++2a standard evolves.

C++2a feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Concepts [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0734r0.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0734R0.PDF
[1] P0734R0]]
6
(TS only)
Default member initializers for bit-fields [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0683r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0683R1.HTML
[2] P0683R1]]
8 6
const&-qualified pointers to members [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0704r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0704R1.HTML
[3] P0704R1]]
8 6
Allow lambda-capture [=, this] [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0409r2.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0409R2.HTML
[4] P0409R2]]
8 6
__VA_OPT__ [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0306r4.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0306R4.HTML
[5] P0306R4]]
8 (partial)* 6
Designated initializers [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0329r4.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0329R4.PDF
[6] P0329R4]]
4.7 (partial)*
8
3.0 (partial)*
template-parameter-list for generic lambdas [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0428r2.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0428R2.PDF
[7] P0428R2]]
8
Initializer list constructors in class template argument deduction [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0702r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0702R1.HTML
[8] P0702R1]]
8 6
init-statements for range-based for [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0614R1.HTML
[9] P0614R1]]
9
Three-way comparison operator [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0515r0.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0515R0.PDF
[10] P0515R0]]
attribute [[no_unique_address]] [http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0840r2.html [HTTP://OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0840R2.HTML
[11] P0840R2]]
attributes [[likely]] and [[unlikely]] [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0479r5.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0479R5.HTML
[12] P0479R5]]
typename optional [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0634r2.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0634R2.HTML
[13] P0634R2]]
Pack expansion in lambda init-capture [http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0780r2.html [HTTP://OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0780R2.HTML
[14] P0780R2]]
Default constructible and assignable stateless lambdas [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0624R2.PDF
[15] P0624R2]]
9
Three-way comparison operator support <compare> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0515r3.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0515R3.PDF
[16] P0515R3]]
std::endian [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0463R1.HTML
[17] P0463R1]]
8 7
Extending std::make_shared to support arrays [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0674R1.HTML
[18] P0674R1]]
Calendar and timezone [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0355R7.HTML
[19] P0355R7]]
std::span [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0122R7.PDF
[20] P0122R7]]
Floating point atomic [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0020R6.HTML
[21] P0020R6]]
Synchronized buffered ostream [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0053R7.PDF
[22] P0053R7]]
constexpr for <algorithm> and <utility> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0202R3.HTML
[23] P0202R3]]
More constexpr for <complex> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0415R1.HTML
[24] P0415R1]]
std::remove_cvref [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0550R2.PDF
[25] P0550R2]]
6
String prefix and suffix checking [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0457R2.HTML
[26] P0457R2]]
6
Utility to convert a pointer to a raw pointer [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2017/P0653R2.HTML
[27] P0653R2]]
8 6
<version> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2018/P0754R2.PDF
[28] P0754R2]]
7
 

C++2a feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C++17 features

C++17 feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
New auto rules for direct-list-initialization [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N3922.HTML
[29] N3922]]
5 3.8 19.0 (2015)* 4.10.1 17.0 17.7
static_assert with no message [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3928.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N3928.PDF
[30] N3928]]
6 2.5 19.10* 4.12 18.0 17.7
typename in a template template parameter [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4051.HTML
[31] N4051]]
5 3.5 19.0 (2015)* 4.10.1 17.0 17.7
Removing trigraphs [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4086.HTML
[32] N4086]]
5 3.5 16.0* 4.15
Nested namespace definition [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4230.HTML
[33] N4230]]
6 3.6 19.0 (Update 3)* 4.12 17.0 17.7
Attributes for namespaces and enumerators [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4266.HTML
[34] N4266]]
4.9 (namespaces) / 6 (enumerators) 3.6 19.0 (2015)* 4.11 17.0 17.7
u8 character literals [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4267.HTML
[35] N4267]]
6 3.6 19.0 (2015)* 4.11 17.0 17.7
Allow constant evaluation for all non-type template arguments [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4268.HTML
[36] N4268]]
6 3.6 19.12* 4.15
Fold Expressions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4295.HTML
[37] N4295]]
6 3.6 19.12* 4.14 19.0
Remove Deprecated Use of the register Keyword [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0001r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2015/P0001R1.HTML
[38] P0001R1]]
7 3.8 19.11* 4.13 18.0 17.7
Remove Deprecated operator++(bool) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0002r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2015/P0002R1.HTML
[39] P0002R1]]
7 3.8 19.11* 4.13 18.0 17.7
Removing Deprecated Exception Specifications from C++17 [http://wg21.link/p0003r5 [HTTP://WG21.LINK/P0003R5
[40] P0003R5]]
7 4 19.10* 4.14 19.0
Make exception specifications part of the type system [http://wg21.link/p0012r1 [HTTP://WG21.LINK/P0012R1
[41] P0012R1]]
7 4 19.12* 4.14 19.0
Aggregate initialization of classes with base classes [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0017r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2015/P0017R1.HTML
[42] P0017R1]]
7 3.9 19.14* 4.15
Lambda capture of *this [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0018r3.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0018R3.HTML
[43] P0018R3]]
7 3.9 19.11* 4.14 19.0
Using attribute namespaces without repetition [http://wg21.link/p0028r4 [HTTP://WG21.LINK/P0028R4
[44] P0028R4]]
7 3.9 19.11* 4.13 18.0 17.7
Dynamic memory allocation for over-aligned data [http://wg21.link/p0035r4 [HTTP://WG21.LINK/P0035R4
[45] P0035R4]]
7 4 19.12* 4.14
Unary fold expressions and empty parameter packs [http://wg21.link/p0036r0 [HTTP://WG21.LINK/P0036R0
[46] P0036R0]]
6 3.9 19.12* 4.14
__has_include in preprocessor conditionals [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0061r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2015/P0061R1.HTML
[47] P0061R1]]
5 Yes 19.11* 4.13 18.0 17.7
Template argument deduction for class templates [http://wg21.link/p0091r3 [HTTP://WG21.LINK/P0091R3
[48] P0091R3]]
7 5 19.14* 4.15
Non-type template parameters with auto type [http://wg21.link/p0127r2 [HTTP://WG21.LINK/P0127R2
[49] P0127R2]]
7 4 19.14*
Guaranteed copy elision [http://wg21.link/p0135r1 [HTTP://WG21.LINK/P0135R1
[50] P0135R1]]
7 4 19.13* 4.15
New specification for inheriting constructors (DR1941 et al) [http://wg21.link/p0136r1 [HTTP://WG21.LINK/P0136R1
[51] P0136R1]]
7 3.9 19.14*
Direct-list-initialization of enumerations [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0138r2.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0138R2.PDF
[52] P0138R2]]
7 3.9 19.11* 4.14 18.0
Stricter expression evaluation order [http://wg21.link/p0145r3 [HTTP://WG21.LINK/P0145R3
[53] P0145R3]]
7 4 19.14* 4.15
constexpr lambda expressions [http://wg21.link/p0170r1 [HTTP://WG21.LINK/P0170R1
[54] P0170R1]]
7 5 19.11* 4.14 19.0
Differing begin and end types in range-based for [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0184r0.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0184R0.HTML
[55] P0184R0]]
6 3.9 19.10* 4.12 18.0 17.7
[[fallthrough]] attribute [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0188r1.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0188R1.PDF
[56] P0188R1]]
7 3.9 19.10* 4.13 18.0 17.7
[[nodiscard]] attribute [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0189r1.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0189R1.PDF
[57] P0189R1]]
7 3.9 19.11* 4.13 18.0 17.7
Pack expansions in using-declarations [http://wg21.link/p0195r2 [HTTP://WG21.LINK/P0195R2
[58] P0195R2]]
7 4 19.14* 4.15
[[maybe_unused]] attribute [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0212r1.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0212R1.PDF
[59] P0212R1]]
7 3.9 19.11* 4.13 18.0 17.7
Structured Bindings [http://wg21.link/p0217r3 [HTTP://WG21.LINK/P0217R3
[60] P0217R3]]
7 4 19.11* 4.14 19.0
Hexadecimal floating-point literals [http://wg21.link/p0245r1 [HTTP://WG21.LINK/P0245R1
[61] P0245R1]]
3.0 Yes 19.11* 4.13 18.0 17.7
Ignore unknown attributes [http://wg21.link/p0283r2 [HTTP://WG21.LINK/P0283R2
[62] P0283R2]]
Yes 3.9 19.11* 4.13 18.0 17.7
constexpr if statements [http://wg21.link/p0292r2 [HTTP://WG21.LINK/P0292R2
[63] P0292R2]]
7 3.9 19.11* 4.14 19.0
init-statements for if and switch [http://wg21.link/p0305r1 [HTTP://WG21.LINK/P0305R1
[64] P0305R1]]
7 3.9 19.11* 4.14 18.0
Inline variables [http://wg21.link/p0386r2 [HTTP://WG21.LINK/P0386R2
[65] P0386R2]]
7 3.9* 19.12* 4.14 19.0
DR: Matching of template template-arguments excludes compatible templates [http://wg21.link/p0522r0 [HTTP://WG21.LINK/P0522R0
[66] P0522R0]]
7 4 19.12* 4.15
std::uncaught_exceptions() [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4259 [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N4259
[67] N4259]]
6 3.7 19.0 (2015)* N/A  
Improving std::pair and std::tuple [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2015/N4387.HTML
[68] N4387]]
6 4 19.0 (Update 2)* N/A N/A  
std::shared_mutex (untimed) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2015/N4508.HTML
[69] N4508]]
6 3.7 19.0 (Update 2)* N/A N/A  
std::string_view [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2014/N3921.HTML
[70] N3921]]
7 4.0 19.10* N/A  
Standardization of Parallelism TS [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0024R2.HTML
[71] P0024R2]]
19.14* N/A 18.0*  
Elementary string conversions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0067R5.HTML
[72] P0067R5]]
8 (partial) 19.14* (partial) N/A  
Splicing Maps and Sets [http://wg21.link/p0083r3 [HTTP://WG21.LINK/P0083R3
[73] P0083R3]]
7 19.12* N/A  
Hardware interference size [http://wg21.link/p0154r1 [HTTP://WG21.LINK/P0154R1
[74] P0154R1]]
19.11* N/A  
std::filesystem [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2016/P0218R1.HTML
[75] P0218R1]]
8 19.14* N/A  
std::byte [http://wg21.link/p0298r3 [HTTP://WG21.LINK/P0298R3
[76] P0298R3]]
7 5 19.11* N/A  
 

C++17 feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX

C++14 features

C++14 feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
Tweaked wording for contextual conversions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2012/N3323.PDF
[77] N3323]]
4.9 3.4 18.0* 4.9 16.0 16.1 8.6
Binary literals [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2012/N3472.PDF
[78] N3472]]
4.3/4.9 2.9 19.0 (2015)* 4.10 11.0 2015 8.6
decltype(auto), Return type deduction for normal functions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3638.HTML
[79] N3638]]
4.8/4.9 3.3/3.4 19.0 (2015)* 4.9 15.0 16.1 8.6
Initialized/Generalized lambda captures (init-capture) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3648.HTML
[80] N3648]]
4.5/4.9 3.4 19.0 (2015)* 4.10 15.0 16.1 8.6
Generic (polymorphic) lambda expressions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3649.HTML
[81] N3649]]
4.9 3.4 19.0 (2015)* 4.10 16.0 16.1 8.6
Variable templates [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3651.PDF
[82] N3651]]
5 3.4 19.0 (Update 2)* 4.11 17.0 17.4 8.6
Extended constexpr [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3652.HTML
[83] N3652]]
5 3.4 19.10* 4.11 17.0 17.4 8.6
Member initializers and aggregates (NSDMI) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3653.HTML
[84] N3653]]
5 3.3 19.10* 4.9 16.0 16.1 8.6
Clarifying memory allocation (avoiding/fusing allocations) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3664.HTML
[85] N3664]]
N/A 3.4 N/A N/A 17.4 8.6
Deprecated attribute [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3760.HTML
[86] N3760]]
4.9 3.4 19.0 (2015)* 4.9 15.0*
16.0
16.1 8.6
Sized deallocation [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3778.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3778.HTML
[87] N3778]]
5 3.4 19.0 (2015)* 4.10.1 17.0 16.1 8.6
Single quote as digit separator [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3781.PDF
[88] N3781]]
4.9 3.4 19.0 (2015)* 4.10 16.0 2015 8.6
std::result_of and SFINAE [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3462.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2012/N3462.HTML
[89] N3462]]
5 Yes 19.0 (Update 2)* N/A N/A N/A 8.6  Yes 5.15
constexpr for <complex> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3302.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2011/N3302.HTML
[90] N3302]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
constexpr for <chrono> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3469.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2012/N3469.HTML
[91] N3469]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
constexpr for <array> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3470.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2012/N3470.HTML
[92] N3470]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
constexpr for <initializer_list>, <utility> and <tuple> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3471.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2012/N3471.HTML
[93] N3471]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
Improved std::integral_constant [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3545.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3545.PDF
[94] N3545]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
User-defined literals for <chrono> and <string> [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3642.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3642.PDF
[95] N3642]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
Null forward iterators [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3644.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3644.PDF
[96] N3644]]
5* 3.4 19.0 (2015)* N/A N/A 8.6  5.15
std::quoted [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3654.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3654.HTML
[97] N3654]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
Heterogeneous associative lookup [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3657.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3657.HTM
[98] N3657]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
std::integer_sequence [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3658.HTML
[99] N3658]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
std::shared_timed_mutex [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3659.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3659.HTML
[100] N3659]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
std::exchange [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3668.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3668.HTML
[101] N3668]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
fixing constexpr member functions without const [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3669.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3669.PDF
[102] N3669]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
std::get<T>() [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3670.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3670.HTML
[103] N3670]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
Dual-Range std::equal, std::is_permutation, std::mismatch [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2013/N3671.HTML
[104] N3671]]
5 3.4 19.0 (2015)* N/A N/A 8.6  5.15
 

C++14 feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++

C++11 features

C++11 feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
HP aCC
Digital Mars C++
alignas [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2341.PDF
[105] N2341]]
4.8 3.0 19.0 (2015)* 4.8 15.0 2015 8.6  Yes 5.13
alignof [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2341.PDF
[106] N2341]]
4.5 2.9 19.0 (2015)* 4.8 15.0 2015 8.4  Yes 5.13
Atomic operations [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2427.HTML
[107] N2427]]
4.4 3.1 17.0* Yes 13.0 2015 8.4  Yes 5.14
auto [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2006/N1984.PDF
[108] N1984(V1.0)]]
4.4(v1.0) Yes 16.0* 4.1(v0.9) 11.0(v0.9)
12.0(v1.0)
2015 8.4  Yes 5.13 A.06.25
C99 preprocessor [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2004/N1653.HTM
[109] N1653]]
4.3 Yes 19.0 (2015)* (partial - buggy variadic macros) 4.1 11.1 2015 8.4  Yes 5.9 A.06.25 Yes
constexpr [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2235.PDF
[110] N2235]]
4.6 3.1 19.0 (2015)* (partial) 4.6 13.0*
14.0
2015 8.4  Yes 5.13 A.06.28
decltype V1.0:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2343.PDF
[111]

v1.1: N2343]
V1.1:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2011/N3276.PDF
[112] N3276]]

4.3(v1.0)
4.8.1(v1.1)
2.9 16.0* 4.1(v1.0) 11.0(v1.0)
12.0(v1.1)
2015 8.4  Yes 5.13 A.06.25 8.52(v1.0)
Defaulted and deleted functions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2346.HTM
[113] N2346]]
4.4 3.0 18.0* 4.1 12.0 2015 8.4  Yes 5.13 A.06.25
Delegating constructors [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2006/N1986.PDF
[114] N1986]]
4.7 3.0 18.0* 4.7 14.0 2015 8.4  Yes 5.13 A.06.28
Explicit conversion operators [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2437.PDF
[115] N2437]]
4.5 3.0 18.0* 4.4 13.0 2015 8.4  Yes 5.13 A.06.27
Extended friend declarations [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2005/N1791.PDF
[116] N1791]]
4.7 2.9 16.0* (partial) 4.1 11.1*
12.0
2015 8.4  Yes 5.13 A.06.25
extern template [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2006/N1987.HTM
[117] N1987]]
3.3 Yes 12.0* 3.9 9.0 2015 8.4  Yes 5.13 A.06.25
Forward enum declarations [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2764.PDF
[118] N2764]]
4.6 3.1 17.0* 4.5 11.1*
14.0
2015 8.4  Yes 5.13
Inheriting constructors [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2540.HTM
[119] N2540]]
4.8 3.3 19.0 (2015)* 4.8 15.0 2015 8.4  Yes 5.13
Initializer lists [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2672.HTM
[120] N2672]]
4.4 3.1 18.0* 4.5 13.0*
14.0
2015 8.4  Yes 5.13 A.06.28
Lambda expressions V0.9:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2550.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2550.PDF
[121] N2550]]
[https://wg21.link/

v1.0:
V1.0:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2658.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2658.PDF
[122] N2658]]
[https://wg21.link/
v1.1:
V1.1:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2009/N2927.PDF

4.5(v1.1) 3.1 16.0*(v1.0)
17.0*(v1.1)
4.1(v1.1) 12.0(v1.1) 2015 8.4  Yes 5.13 A.06.25
Local and unnamed types as template parameters [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2657.HTM
[123] N2657]]
4.5 2.9 16.0* 4.2 12.0 2015 8.4  Yes 5.13 A.06.27
long long [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2005/N1811.PDF
[124] N1811]]
Yes Yes 14.0* Yes Yes 2015 8.4  Yes Yes Yes Yes
Inline namespaces [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2535.HTM
[125] N2535]]
4.4 2.9 19.0 (2015)* 4.5 14.0 2015 8.4  Yes 5.13 A.06.28
New character types [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2249.HTML
[126] N2249]]
4.4 2.9 19.0 (2015)* 4.4 12.1*
14.0
2015 8.4  Yes 5.13 A.06.27 8.52
Trailing function return types [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2541.HTM
[127] N2541]]
4.4 2.9 16.0* 4.1 12.0 2015 8.4  Yes 5.13 A.06.27
nullptr [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2431.PDF
[128] N2431]]
4.6 2.9 16.0* 4.2 12.1 2015 8.4  Yes 5.13 A.06.27 8.52
Unicode string literals [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2442.HTM
[129] N2442]]
4.4 3.0 19.0 (2015)* 4.7 11.0* 2015 8.4  Yes 5.7 A.06.28 8.52
Raw string literals [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2442.HTM
[130] N2442]]
4.5 Yes 18.0* 4.7 14.0 2015 8.4  Yes 5.13 A.06.28 8.52
User-defined literals [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2765.PDF
[131] N2765]]
4.7 3.1 19.0 (2015)* 4.8 15.0 2015 8.4  Yes 5.14
Right angle brackets [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2005/N1757.HTML
[132] N1757]]
4.3 Yes 14.0* 4.1 11.0 2015 8.4  Yes 5.13
Rvalue references V1.0:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2006/N2118.HTML
[133]

v2.0: N2118]
V2.0:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2844.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2009/N2844.HTML
[134]
v2.1: N2844]
V2.1:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1138 [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/CWG_DEFECTS.HTML#1138
[135]
v3.0: N2844+]
V3.0:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2010/N3053.HTML

4.3(v1.0)
4.5(v2.1)
4.6(v3.0)
Yes 16.0*(v2.0)
17.0*(v2.1)
19.0 (2015)*(v3.0)
4.5(v3.0) 11.1(v1.0)
12.0(v2.0)
14.0(v3.0)
2015 8.4  Yes 5.13 A.06.25
static_assert [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2004/N1720.HTML
[136] N1720]]
4.3 2.9 16.0* 4.1 11.0 2015 8.4  Yes 5.13 A.06.25 8.52
Strongly-typed enum [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2347.PDF
[137] N2347]]
4.4 2.9 17.0* 4.0 13.0 2015 8.4  Yes 5.13 A.06.25
Template aliases [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2258.PDF
[138] N2258]]
4.7 3.0 18.0* 4.2 12.1 2015 8.4  Yes 5.13 A.06.27
Thread-local storage [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2659.HTM
[139] N2659]]
4.4*
4.8
3.3*
3.3
16.0* (partial)
19.0 (2015)*
4.8 11.1*
15.0*
2015 8.4  Yes 5.9* 8.52*
Unrestricted unions [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2544.PDF
[140] N2544]]
4.6 3.0 19.0 (2015)* 4.6 14.0* 2015 8.4  Yes 5.13 A.06.28
Type traits [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2005/N1836.PDF
[141] N1836]]
4.3 3.0 14.0* 4.0 10.0 2015 8.4  Yes 5.13 6.16
Variadic templates V0.9:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2242.PDF
[142]

v1.0: N2242]
V1.0:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2555.PDF
[143] N2555]]

4.3(v0.9)
4.4(v1.0)
2.9(v1.0) 18.0* 4.1(v0.9) 12.1(v1.0) 2015 8.4  Yes 5.13 A.06.27
Range-for loop [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2009/N2930.HTML
[144] N2930]]
4.6 3.0 17.0* 4.5 13.0 2015 8.4  Yes 5.13 A.06.28
override and final V0.8:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2928.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2009/N2928.HTM
[145]

v0.9: N2928]
V0.9:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2010/N3206.HTM
[146]
v1.0: N3206]
V1.0:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2011/N3272.HTM
[147] N3272]]

4.7 2.9 14.0* (partial)
17.0*
4.8(v1.0) 12.0(v0.8)
14.0(v1.0)
2015 8.4  Yes 5.13
Attributes [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2761.PDF
[148] N2761]]
4.8 3.3 19.0 (2015)* 4.2 12.1 2015 8.4  Yes 5.13 A.06.27
ref-qualifiers [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2007/N2439.HTM
[149] N2439]]
4.8.1 2.9 19.0 (2015)* 4.7 14.0 2015 8.4  Yes 5.13 A.06.28
Non-static data member initializers [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2756.HTM
[150] N2756]]
4.7 3.0 18.0* 4.6 14.0 2015 8.4  Yes 5.13 A.06.28
Dynamic initialization and destruction with concurrency (magic statics) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2660.HTM
[151] N2660]]
4.3 2.9 19.0 (2015)* Yes 11.1* 2015 8.4  Yes 5.13 A.06.25
noexcept [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2010/N3050.HTML
[152] N3050]]
4.6 3.0 19.0 (2015)* 4.5 14.0 2015 8.4  Yes 5.13 A.06.28
dynamic pointer safety (GC interface) [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2008/N2670.HTM
[153] N2670]]
N/A  
Money, Time, and hexfloat I/O manipulators TIME:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2071.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2006/N2071.HTML
[154]

Money: N2071]
MONEY:]
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2072.html [HTTP://WWW.OPEN-STD.ORG/JTC1/SC22/WG21/DOCS/PAPERS/2006/N2072.HTML
[155] N2072]]

5 3.8 19.0 (2015)* N/A   5.15
 

C++11 feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
HP aCC
Digital Mars C++

* - hover over the version number to see notes


References

Individual vendor compatibility checklists (these are more up-to-date than the table above)

  • GCC (Updated 2018-05)
  • Clang++ (Updated 2017-09)
  • Microsoft Visual Studio (updated 2018-05)
  • Intel C++ (Updated 2017-11)
  • Parallel STL (an implementation of the C++17 standard library algorithms with support for execution policies)
  • EDG (Updated 2017-09)
  • Oracle C++ (updated 2017-07)
  • Full C++14 support added in 5.15.
  • Oracle ships 4 implementations of the C++ standard library:
  • libCstd (RogueWave Standard Library version 2), predates C++98
  • stlport4 (STLport Standard Library version 4.5.3), predates C++03
  • stdcxx4 (Apache Standard Library version 4), predates C++11
  • libstdc++ (GCC runtime library, support for C++11 and C++14 depending on release)
  • IBM XL C++ (updated 2018-05)
  • IBM XL C++ for Linux
  • Core language support status: C++11 complete as of 13.1.6, C++14 partial in 16.1.0
  • IBM does not ship an implementation of C++ standard library for Linux (uses GNU libstdc++)
  • IBM XL C++ for AIX
  • HP aCC
  • Digital Mars C++
  • Embarcadero C++
  • Cray (updated 2018-01)
  • Portland Group (PGI) (updated 2016-07)
  • Release notes for 2016 claim C++14 support, except "generalized constexpr and constexpr member functions and implicit const, variable templates, clarifying memory allocation (merged allocation)"
  • Texas Instruments (updated 2018-05)
  • Analog Devices (updated 2018-05)