C++11

来自cppreference.com
< cpp


C++11 是 C++ 的第二个主要版本,并且是从 C++98 起的最重要更新。它引入了大量更改,标准化了既有实践,并改进了对 C++ 程序员可用的抽象。

在它最终由 ISO 在 2011 年 8 月 12 日采纳前,人们曾使用名称“C++0x”,因为它曾被期待在 2010 年之前发布。C++03 与 C++11 期间花了 8 年时间,故而这是迄今为止最长的版本间隔。从那时起,C++ 有规律地每 3 年更新一次。

下列功能特性已并入 C++11:

目录

[编辑]核心语言功能特性

[编辑]库功能特性

[编辑]标头

[编辑]库功能特性

[编辑]缺陷报告

C++11 中修正的缺陷报告(核心 741 个,库 868 个)
  1. 1.01.11.2这些缺陷的解决方案添加了以下成员函数,但它们无法在 libstdc++ 的 C++98 模式中使用:

[编辑]编译器支持

[编辑]C++11 核心语言功能特性

C++11 功能特性

 
提案

 
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++
C99 预处理器N16534.3 19.0 (2015)*(部分)*
19.26*
4.1 11.1 2015 7.0 8.4  17.1.0 1.1.0 10.1 5.9 A.06.25
static_assert  (FTM)*N17204.3 2.9 16.0*4.1 11.0 2015 7.0 8.4  17.1.0 1.1.0 11.1 5.13 A.06.25 8.52
右角括号 N17574.3 14.0*4.1 11.0 2015 7.0 8.4  17.1.0 1.1.0 12.1 5.13
扩展的 friend 声明 N17914.7 2.9 16.0*4.1 11.1 (部分)
12.0
2015 7.0 8.4  17.1.0 1.1.0 11.1 5.13 A.06.25
long longN181114.0*2015 7.0 8.4  17.1.0 1.1.0
autoN19844.4 16.0*3.9 11.0 (部分)*
12.0
2015 7.0 8.4  17.1.0 1.1.0 11.1 5.13 A.06.25
委托构造函数  (FTM)*N19864.7 3.0 18.0*4.7 14.0 2015 7.0 8.4  17.1.0 1.1.0 11.1 5.13 A.06.28
externtemplateN19873.3 12.0*3.9 9.0 2015 7.0 8.4  17.1.0 1.1.0 11.1 5.13 A.06.25
constexpr  (FTM)*N22354.6 3.1 19.0 (2015)*4.6 13.0 (部分)
14.0
2015 7.0 8.4  17.1.0 1.1.0 12.1 (部分)
13.1
5.13 A.06.28
char16_tchar32_t  (FTM)*N22494.4 2.9 19.0 (2015)*4.4 12.1 (部分)*
14.0
2015 7.0 8.4  17.1.0 1.1.0 13.1.1*5.13 A.06.27 8.52
类型特征的编译器支持。N2255*N2255
N2984
N3142
4.3 (部分)*
4.8 (部分)*
5
3.0 14.0*(部分)*
19.0 (2015)*
4.0 10.0 2015 8.4  17.1.0 1.1.0 13.1.3 5.13 6.16
模板别名  (FTM)*N22584.7 3.0 18.0*4.2 12.1 2015 7.0 8.4  17.1.0 1.1.0 13.1.1*5.13 A.06.27
alignasN23414.8 3.0 19.0 (2015)*4.8 15.0 2015 7.0 8.6  17.1.0 1.1.0 13.1.2*5.13
alignofN23414.5 2.9 19.0 (2015)*4.8 15.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13
预置与弃置的函数 N23464.4 3.0 18.0*4.1 12.0 2015 7.0 8.4  17.1.0 1.1.0 13.1 5.13 A.06.25
强类型 enumN23474.4 2.9 16.0* (部分)
17.0*
4.0 13.0 2015 7.0 8.4  17.1.0 1.1.0 12.1 5.13 A.06.25
原子操作N24274.4 3.1 17.0*13.0 2015 8.4  17.1.0 1.1.0 13.1.2*5.14
nullptrN24314.6 2.9 16.0*4.2 12.1 2015 7.0 8.4  17.1.0 1.1.0 13.1 5.13 A.06.27 8.52
显式转换运算符N24374.5 3.0 18.0*4.4 13.0 2015 7.0 8.4  17.1.0 1.1.0 12.1 5.13 A.06.27
引用限定符  (FTM)*N24394.8.1 2.9 19.0 (2015)*4.7 14.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.28
Unicode 字符串字面量  (FTM)*N24424.4 3.0 19.0 (2015)*4.7 11.0*2015 7.0 8.4  17.1.0 1.1.0 10.1*
13.1.1*
5.7 A.06.28 8.52
未处理的字符串字面量  (FTM)*N24424.5 18.0*4.7 14.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.1, 不包括 AIX xlC 13.1.3*5.13 A.06.28 8.52
内联命名空间N25354.4 2.9 19.0 (2015)*4.5 14.0 2015 7.0 8.4  17.1.0 1.1.0 11.1 5.13 A.06.28
继承构造函数  (FTM)*N25404.8 3.3 19.0 (2015)*4.8 15.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.1*5.13
尾随的函数返回类型N25414.4 2.9 16.0*4.1 12.0 2015 7.0 8.4  17.1.0 1.1.0 12.1 5.13 A.06.27
无限制的 unionN25444.6 3.0 19.0 (2015)*4.6 14.0*2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.28
变参数模板  (FTM)*N2242
N2555
4.3 (部分)*
4.4
2.9 18.0*4.3 (部分)*
4.3
12.1 2015 7.0 8.4  17.1.0 1.1.0 11.1 (部分)*5.13 A.06.27
表达式 SFINAEN26344.4 2.9 19.14*4.2 12.1 2015 7.0 8.4  17.1.0 1.1.0
局部与无名类型作为模板形参 N26574.5 2.9 16.0*4.2 12.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.27
线程局部存储N26594.4 (部分)
4.8
3.3*16.0* (部分)
19.0 (2015)*
4.8 11.1 (部分)
15.0*
2015 8.4  17.1.0 1.1.0 10.1 (部分)*
13.1.2 (部分)*
5.9 (部分) 8.52 (部分)
带并发的动态初始化与析构(魔法静态变量)  (FTM)*N26604.3 2.9 19.0 (2015)*11.1*2015 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.25
垃圾收集与基于可达性的泄漏检测 N2670  
初始化器列表  (FTM)*N26724.4 3.1 18.0*4.5 13.0 (部分)
14.0
2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.28
非静态数据成员初始化器  (FTM)*N27564.7 3.0 18.0*4.6 14.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.28
属性[[noreturn]]  (FTM)*N27614.8 3.3 19.0 (2015)*4.2 12.1 2015 7.0 8.4  17.1.0 1.1.0 13.1.1*5.13 A.06.27
[[carries_dependency]]N2556
N2643
3.3*   17.1.0*
前置 (不透明) enum 声明N27644.6 3.1 17.0*4.5 11.1 (部分)
14.0
2015 7.0 8.4  17.1.0 1.1.0 12.1 5.13
用户定义的字面量  (FTM)*N27654.7 3.1 19.0 (2015)*4.8 15.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.14
右值引用  (FTM)*N2118
N2844
CWG1138
4.3 (部分)*
4.5
2.9 16.0*(部分)*
17.0*
4.5 11.1 (部分)*
12.0 (部分)*
14.0
2015 7.0*8.4  17.1.0 1.1.0 12.1 5.13 A.06.25
Lambda 表达式  (FTM)*N2550
N2658
N2927
4.5 3.1 16.0*(部分)*
17.0*
4.1 12.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.25
范围 for 循环  (FTM)*N2930
N3271
4.6 3.0 17.0*4.5 13.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.2*5.13 A.06.28
noexceptN30504.6 3.0 19.0 (2015)*4.5 14.0 2015 7.0 8.4  17.1.0 1.1.0 13.1.1*5.13 A.06.28
预置的移动特殊成员函数N30534.6 3.0 19.0 (2015)*4.5 14.0 2015 7.0 8.4  17.1.0 1.1.0 5.13 A.06.25
overridefinalN2928
N3206
N3272
4.7 2.9 14.0* (部分)
17.0*
4.8 12.0 (部分)*
14.0
2015 7.0 8.4  17.1.0 1.1.0 13.1.1*5.13
decltype  (FTM)*N2343
N3276
4.3 (部分)*
4.8.1
2.9 16.0*(部分)*
17.0*
4.2 (部分)*
4.8
11.0 (部分)*
12.0
2015 7.0 8.4  17.1.0 1.1.0 11.1 (部分)*5.13 A.06.25 8.52 (部分)*
 

C++11 功能特性
 

提案
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++

[编辑]C++11 库功能特性

C++11 功能特性

 
提案

 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
 
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
正则表达式库N14294.9 2.8 是  17.1.0
类型特征N1836*N1836
N2240
N2244
N2255
N2342
N2984
N3142
4.3 (部分)*
4.8 (部分)*
5
3.0 14.0*(部分)*
19.0 (2015)*
是  17.1.0 5.13
容器的成员函数 cbegincendcrbegincrendN1913
LWG1192
4.3 (部分)*
4.5
是*16.0*是*  17.1.0
垃圾收集与基于可达性的泄漏检测(库支持N26706 (无操作)*3.4 (无操作)*19.0 (2015)*(无操作)*(无操作)*  17.1.0
货币、时间及十六进制浮点数 I/O 操纵符N2071
N2072
5 3.8 19.0 (2015)*是  17.1.0 5.15
禁止 COW (copy-on-write,写时复制)std::basic_stringN26685 是  17.1.0
 

C++11 功能特性
 

提案
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
 
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*

* - 在版本号上停留可以查看注记 * 查看其他注记
DRnn - 在 "DR" 后的数字 nn 表示应用该缺陷报告的目标 C++ 修订版本,例如 DR20 → C++20。

[编辑]外部链接

1. C++11 - Wikipedia
2. 可运行的 C++11 示例
close