Namespaces
Variants

C++11

From cppreference.net

C++11 是 C++ 的第二个主要版本,也是自 C++98 以来最重要的更新。本次更新引入了大量变更,旨在标准化现有实践并提升 C++ 程序员可用的抽象能力。

在2011年8月12日被ISO最终批准前,该标准一直使用'C++0x'的名称,因为原本预期在2010年前发布。从C++03到C++11间隔了8年时间,因此成为迄今为止版本间最长的间隔期。此后,C++开始以每3年为一个周期进行规律性更新。

以下特性已并入 C++11:

目录

核心语言特性

库功能特性

头文件

库功能特性

(注:根据要求,所有C++标准库函数名、HTML标签及属性均未翻译,仅对页面标题等描述性文本进行了简体中文翻译)
(注:根据要求,所有HTML标签、属性及C++标准库函数名均保持原文未翻译,仅对说明性文字进行翻译。由于原文中除函数名外无其他需要翻译的文本内容,故输出保持原样)

缺陷报告

Defect Reports fixed in C++11 (741 core, 868 library)
  1. 1.0 1.1 1.2 The reslution of these defects added the following member functions, but they are not available in the C++98 mode of libstdc++ :

编译器支持

C++11 核心语言特性

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++
C99 preprocessor N1653 4.3 Yes 19.0 (2015)* (partial)*
19.26*
Yes 4.1 11.1 2015 7.0 8.4 Yes 17.1.0 1.1.0 10.1 5.9 A.06.25 Yes
static_assert ( FTM ) * N1720 4.3 2.9 16.0* Yes 4.1 11.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.25 8.52
Right angle brackets N1757 4.3 Yes 14.0* Yes 4.1 11.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 5.13
Extended friend declarations N1791 4.7 2.9 16.0* Yes 4.1 11.1 (partial)
12.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.25
long long N1811 Yes Yes 14.0* Yes Yes Yes 2015 7.0 8.4 Yes 17.1.0 1.1.0 Yes Yes Yes Yes
auto N1984 4.4 Yes 16.0* Yes 3.9 11.0 (partial)*
12.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.25
Delegating constructors ( FTM ) * N1986 4.7 3.0 18.0* Yes 4.7 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.28
extern template N1987 3.3 Yes 12.0* Yes 3.9 9.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.25
constexpr ( FTM ) * N2235 4.6 3.1 19.0 (2015)* Yes 4.6 13.0 (partial)
14.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 (partial)
13.1
5.13 A.06.28
char16_t and char32_t ( FTM ) * N2249 4.4 2.9 19.0 (2015)* Yes 4.4 12.1 (partial)*
14.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1* 5.13 A.06.27 8.52
Compiler support for type traits . N2255* N2255
N2984
N3142
4.3 (partial)*
4.8 (partial)*
5
3.0 14.0*
(partial)*
19.0 (2015)*
Yes 4.0 10.0 2015 8.4 Yes 17.1.0 1.1.0 13.1.3 5.13 6.16
Template aliases ( FTM ) * N2258 4.7 3.0 18.0* Yes 4.2 12.1 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1* 5.13 A.06.27
alignas N2341 4.8 3.0 19.0 (2015)* Yes 4.8 15.0 2015 7.0 8.6 Yes 17.1.0 1.1.0 13.1.2* 5.13
alignof N2341 4.5 2.9 19.0 (2015)* Yes 4.8 15.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13
Defaulted and deleted functions N2346 4.4 3.0 18.0* Yes 4.1 12.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1 5.13 A.06.25
Strongly-typed enum N2347 4.4 2.9 16.0* (partial)
17.0*
Yes 4.0 13.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 5.13 A.06.25
Atomic operations N2427 4.4 3.1 17.0* Yes Yes 13.0 2015 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.14
nullptr N2431 4.6 2.9 16.0* Yes 4.2 12.1 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1 5.13 A.06.27 8.52
Explicit conversion operators N2437 4.5 3.0 18.0* Yes 4.4 13.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 5.13 A.06.27
ref-qualifiers  ( FTM ) * N2439 4.8.1 2.9 19.0 (2015)* Yes 4.7 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Unicode string literals ( FTM ) * N2442 4.4 3.0 19.0 (2015)* Yes 4.7 11.0* 2015 7.0 8.4 Yes 17.1.0 1.1.0 10.1*
13.1.1*
5.7 A.06.28 8.52
Raw string literals ( FTM ) * N2442 4.5 Yes 18.0* Yes 4.7 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1, except AIX xlC 13.1.3* 5.13 A.06.28 8.52
Inline namespaces N2535 4.4 2.9 19.0 (2015)* Yes 4.5 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.28
Inheriting constructors ( FTM ) * N2540 4.8 3.3 19.0 (2015)* Yes 4.8 15.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1* 5.13
Trailing function return types N2541 4.4 2.9 16.0* Yes 4.1 12.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 5.13 A.06.27
Unrestricted union s N2544 4.6 3.0 19.0 (2015)* Yes 4.6 14.0* 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Variadic templates ( FTM ) * N2242
N2555
4.3 (partial)*
4.4
2.9 18.0* Yes 4.3 (partial)*
4.3
12.1 2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 (partial)* 5.13 A.06.27
Expression SFINAE N2634 4.4 2.9 19.14* Yes 4.2 12.1 2015 7.0 8.4 Yes 17.1.0 1.1.0
Local and unnamed types as template parameters N2657 4.5 2.9 16.0* Yes 4.2 12.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.27
Thread-local storage N2659 4.4 (partial)
4.8
3.3* 16.0* (partial)
19.0 (2015)*
Yes 4.8 11.1 (partial)
15.0*
2015 8.4 Yes 17.1.0 1.1.0 10.1 (partial)*
13.1.2 (partial)*
5.9 (partial) 8.52 (partial)
Dynamic initialization and destruction with concurrency ( magic statics )  ( FTM ) * N2660 4.3 2.9 19.0 (2015)* Yes Yes 11.1* 2015 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.25
Garbage Collection and Reachability-Based Leak Detection N2670
Initializer lists ( FTM ) * N2672 4.4 3.1 18.0* Yes 4.5 13.0 (partial)
14.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Non-static data member initializers ( FTM ) * N2756 4.7 3.0 18.0* Yes 4.6 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Attributes , [[ noreturn ]] ( FTM ) * N2761 4.8 3.3 19.0 (2015)* Yes 4.2 12.1 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1* 5.13 A.06.27
[[ carries_dependency ]] N2556
N2643
3.3* 17.1.0*
Forward (opaque) enum declarations N2764 4.6 3.1 17.0* Yes 4.5 11.1 (partial)
14.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 5.13
User-defined literals ( FTM ) * N2765 4.7 3.1 19.0 (2015)* Yes 4.8 15.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.14
Rvalue references ( FTM ) * N2118
N2844
CWG1138
4.3 (partial)*
4.5
2.9 16.0* (partial)*
17.0*
Yes 4.5 11.1 (partial)*
12.0 (partial)*
14.0
2015 7.0* 8.4 Yes 17.1.0 1.1.0 12.1 5.13 A.06.25
Lambda expressions ( FTM ) * N2550
N2658
N2927
4.5 3.1 16.0* (partial)*
17.0*
Yes 4.1 12.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.25
Range-for loop ( FTM ) * N2930
N3271
4.6 3.0 17.0* Yes 4.5 13.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
noexcept N3050 4.6 3.0 19.0 (2015)* Yes 4.5 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1* 5.13 A.06.28
Defaulted move special member functions N3053 4.6 3.0 19.0 (2015)* Yes 4.5 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 5.13 A.06.25
override and final N2928
N3206
N3272
4.7 2.9 14.0* (partial)
17.0*
Yes 4.8 12.0 (partial)*
14.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1* 5.13
decltype ( FTM ) * N2343
N3276
4.3 (partial)*
4.8.1
2.9 16.0* (partial)*
17.0*
Yes 4.2 (partial)*
4.8
11.0 (partial)*
12.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 (partial)* 5.13 A.06.25 8.52 (partial)*


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

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*
正则表达式库 N1429 4.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
容器的成员函数 cbegin , cend , crbegin , 和 crend N1913
LWG1192
4.3 (部分)*
4.5
是* 16.0* 是* 17.1.0
垃圾回收 与基于可达性的泄漏检测 ( 库支持 ) N2670 6
(无操作)*
3.4
(无操作)*
19.0 (2015)*
(无操作)*

(无操作)*
17.1.0
货币、时间和十六进制浮点数I/O操纵器 N2071
N2072
5 3.8 19.0 (2015)* 17.1.0 5.15
禁止 COW (写时复制) std::basic_string N2668 5 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*

* - 将鼠标悬停在标有星号 * 的单元格上可查看附加弹出说明。
DR nn - "DR" 后的数字 nn 表示缺陷报告所适用的目标 C++ 修订版本,例如 DR20 → C++20。

外部链接

1. C++11 - 维基百科
2. 可运行的C++11示例