C++11
< cpp
C++11 是 C++ 的第二个主要版本,并且是从 C++98 起的最重要更新。它引入了大量更改,标准化了既有实践,并改进了对 C++ 程序员可用的抽象。
在它最终由 ISO 在 2011 年 8 月 12 日采纳前,人们曾使用名称“C++0x”,因为它曾被期待在 2010 年之前发布。C++03 与 C++11 期间花了 8 年时间,故而这是迄今为止最长的版本间隔。从那时起,C++ 有规律地每 3 年更新一次。
| 本节未完成 原因:更详细的描述  | 
下列功能特性已并入 C++11:
- 来自 TR1:TR1 中除了数学特殊函数之外的全部内容。
 - 来自 Boost:线程库、exception_ptr、error_code 与 error_condition、迭代器改进(begin、end、next、prev)
 - 来自 C:C 风格 Unicode 转换函数
 
核心语言功能特性
- auto 与 decltype
 - 预置与弃置的函数
 - final 与 override
 - 尾随返回类型
 - 右值引用
 - 移动构造函数与移动赋值运算符
 - 有作用域枚举
 - constexpr 与字面类型
 - 列表初始化
 - 委托与继承的构造函数
 - 花括号或等号初始化器
 - nullptr
 - long long
 - char16_t 与 char32_t
 - 类型别名
 - 变参数模板
 - 推广的(非平凡)联合体
 - 推广的 POD(平凡类型与标准布局类型)
 - Unicode 字符串字面量
 - 用户定义字面量
 - 属性
 - lambda 表达式
 - noexcept 说明符与 noexcept 运算符
 - alignof 与 alignas
 - 多线程内存模型
 - 线程局部存储
 - GC 接口 (C++23 中移除)
 - 范围 for (基于 Boost 库)
 - static_assert(基于 Boost 库)
 
| 本节未完成 | 
库功能特性
标头
- <array>
 - <atomic>
 - <cfenv>
 - <chrono>
 - <cinttypes>
 - <condition_variable>
 - <cstdint>
 - <cuchar>
 - <forward_list>
 - <future>
 - <initializer_list>
 - <mutex>
 - <random>
 - <ratio>
 - <regex>
 - <scoped_allocator>
 - <system_error>
 - <thread>
 - <tuple>
 - <typeindex>
 - <type_traits>
 - <unordered_map>
 - <unordered_set>
 
库功能特性
- 并发支持库
 emplace()与其他既存标准库所有部分的右值引用使用- std::unique_ptr
 - std::move_iterator
 - std::initializer_list
 - 有状态及有作用域分配器
 - std::forward_list
 - chrono 库
 - ratio 库
 - 新算法:
 
- 
- std::all_of、std::any_of、std::none_of、
 - std::find_if_not、
 - std::copy_if、std::copy_n、
 - std::move、std::move_backward、
 - std::random_shuffle、std::shuffle、
 - std::is_partitioned、std::partition_copy、std::partition_point、
 - std::is_sorted、std::is_sorted_until、
 - std::is_heap、std::is_heap_until、
 - std::minmax、std::minmax_element、
 - std::is_permutation、
 - std::iota、
 - std::uninitialized_copy_n
 
 
| 本节未完成 | 
缺陷报告
编译器支持
C++11 核心语言功能特性
| C++11 功能特性 | 
提案 | 
 GCC 
 | 
 Clang 
 | 
 MSVC 
 | 
 Apple Clang 
 | 
 EDG eccp 
 | 
 Intel C++ 
 | 
 IBM XL C++ 
 | 
 IBM Open XL C++ for AIX 
 | 
 IBM Open XL C++ for z/OS 
 | 
 Sun/Oracle C++ 
 | 
 Embarcadero C++ Builder 
 | 
 Cray 
 | 
 Nvidia HPC C++ (ex PGI)* 
 | 
 Nvidia nvcc 
 | 
 HP aCC 
 | 
 Digital Mars C++ 
 | 
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C99 预处理器 | N1653 | 4.3 | 是 | 19.0 (2015)* (部分)* 19.26*  | 
是 | 4.1 | 11.1 | 10.1 | 17.1.0 | 1.1.0 | 5.9 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | 是 | |
| static_assert | N1720 | 4.3 | 2.9 | 16.0* | 是 | 4.1 | 11.0 | 11.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | 8.52 | |
| 右角括号 | N1757 | 4.3 | 是 | 14.0* | 是 | 4.1 | 11.0 | 12.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | |||
| 扩展的 friend 声明 | N1791 | 4.7 | 2.9 | 16.0* (部分) 18.0*  | 
是 | 4.1 | 11.1* 12.0  | 
11.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | ||
| long long | N1811 | 是 | 是 | 14.0* | 是 | 是 | 是 | 是 | 17.1.0 | 1.1.0 | 是 | 是 | 8.4 | 2015 | 7.0 | 是 | 是 | |
| auto | N1984 | 4.4 | 是 | 16.0* | 是 | 3.9 | 11.0 (v0.9) 12.0  | 
11.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | ||
| 委托构造函数 | N1986 | 4.7 | 3.0 | 18.0* | 是 | 4.7 | 14.0 | 11.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| extern template | N1987 | 3.3 | 是 | 12.0* | 是 | 3.9 | 9.0 | 11.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | ||
| constexpr | N2235 | 4.6 | 3.1 | 19.0 (2015)* | 是 | 4.6 | 13.0* 14.0  | 
12.1* 13.1  | 
17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
char16_t 与 char32_t | 
N2249 | 4.4 | 2.9 | 19.0 (2015)* | 是 | 4.4 | 12.1* 14.0  | 
13.1.1* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | 8.52 | |
| 类型特征的编译器支持 | N2255 N2518* N2984 N3142  | 
4.3* 4.8* 5  | 
3.0 | 14.0* (部分)* 19.0 (2015)*  | 
是 | 4.0 | 10.0 | 13.1.3 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 6.16 | |||
| 模板别名 | N2258 | 4.7 | 3.0 | 18.0* | 是 | 4.2 | 12.1 | 13.1.1* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | ||
| alignas | N2341 | 4.8 | 3.0 | 19.0 (2015)* | 是 | 4.8 | 15.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.6 | 2015 | 7.0 | |||
| alignof | N2341 | 4.5 | 2.9 | 19.0 (2015)* | 是 | 4.8 | 15.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | |||
| 默认化与被删除的函数 | N2346 | 4.4 | 3.0 | 18.0* | 是 | 4.1 | 12.0 | 13.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | ||
| 强类型 enum | N2347 | 4.4 | 2.9 | 17.0* | 是 | 4.0 | 13.0 | 12.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | ||
| 原子操作 | N2427 | 4.4 | 3.1 | 17.0* | 是 | Yes | 13.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.14 | 是 | 8.4 | 2015 | ||||
| nullptr | N2431 | 4.6 | 2.9 | 16.0* | 是 | 4.2 | 12.1 | 13.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | 8.52 | |
| 显式转换运算符 | N2437 | 4.5 | 3.0 | 18.0* | 是 | 4.4 | 13.0 | 12.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | ||
| 引用限定符 | N2439 | 4.8.1 | 2.9 | 19.0 (2015)* | 是 | 4.7 | 14.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| Unicode 字符串字面量 | N2442 | 4.4 | 3.0 | 19.0 (2015)* | 是 | 4.7 | 11.0* | 10.1* 13.1.1*  | 
17.1.0 | 1.1.0 | 5.7 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | 8.52 | |
| 未处理的字符串字面量 | N2442 | 4.5 | 是 | 18.0* | 是 | 4.7 | 14.0 | 13.1.1, 不包括 AIX xlC 13.1.3* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | 8.52 | |
| 内联命名空间 | N2535 | 4.4 | 2.9 | 19.0 (2015)* | 是 | 4.5 | 14.0 | 11.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| 继承构造函数 | N2540 | 4.8 | 3.3 | 19.0 (2015)* | 是 | 4.8 | 15.0 | 13.1.1* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | |||
| 尾随的函数返回类型 | N2541 | 4.4 | 2.9 | 16.0* | 是 | 4.1 | 12.0 | 12.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | ||
| 无限制的联合体 | N2544 | 4.6 | 3.0 | 19.0 (2015)* | 是 | 4.6 | 14.0* | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| 变参数模板 | N2242 N2555  | 
4.3 (N2242) 4.4  | 
2.9 | 18.0* | 是 | 4.3 (N2242) 4.3  | 
12.1 | 11.1 (N2242) | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | ||
| 表达式 SFINAE | N2634 | 4.4 | 2.9 | 19.14* | 是 | 4.2 | 12.1 | 17.1.0 | 1.1.0 | 是 | 8.4 | 2015 | 7.0 | |||||
| 局部与无名类型作为模板形参 | N2657 | 4.5 | 2.9 | 16.0* | 是 | 4.2 | 12.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | ||
| 线程局部存储 | N2659 | 4.4 (部分) 4.8  | 
3.3* | 16.0* (部分) 19.0 (2015)*  | 
是 | 4.8 | 11.1 (部分) 15.0*  | 
10.1 (部分)* 13.1.2 (部分)*  | 
17.1.0 | 1.1.0 | 5.9 (部分) | 是 | 8.4 | 2015 | 8.52 (部分) | |||
| 带并发的动态初始化与析构(魔法静态变量) | N2660 | 4.3 | 2.9 | 19.0 (2015)* | 是 | Yes | 11.1* | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | A.06.25 | |||
| 垃圾收集与基于可达性的泄漏检测 | N2670 | |||||||||||||||||
| 初始化器列表 | N2672 | 4.4 | 3.1 | 18.0* | 是 | 4.5 | 13.0 (部分) 14.0  | 
13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| 非静态数据成员初始化器 | N2756 | 4.7 | 3.0 | 18.0* | 是 | 4.6 | 14.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| 属性 | N2761 | 4.8 | 3.3 | 19.0 (2015)* | 是 | 4.2 | 12.1 | 13.1.1*’ | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.27 | ||
| 前置 enum 声明 | N2764 | 4.6 | 3.1 | 17.0* | 是 | 4.5 | 11.1 (部分) 14.0  | 
12.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | |||
| 用户定义的字面量 | N2765 | 4.7 | 3.1 | 19.0 (2015)* | 是 | 4.8 | 15.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.14 | 是 | 8.4 | 2015 | 7.0 | |||
| 右值引用 | N2118 N2844 CWG1138  | 
4.3 (N2118) 4.5  | 
2.9 | 16.0* (N2844) 17.0*  | 
是 | 4.5 | 11.1 (N2118) 12.0 (N2844) 14.0  | 
12.1 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0* | A.06.25 | ||
| Lambda 表达式 | N2550 N2658 N2927  | 
4.5 | 3.1 | 16.0* (N2658) 17.0*  | 
是 | 4.1 | 12.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | ||
| 范围 for 循环 | N2930 | 4.6 | 3.0 | 17.0* | 是 | 4.5 | 13.0 | 13.1.2* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| noexcept | N3050 | 4.6 | 3.0 | 19.0 (2015)* | 是 | 4.5 | 14.0 | 13.1.1* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.28 | ||
| 默认化的移动特殊成员函数 | N3053 | 4.6 | 3.0 | 19.0 (2015)* | 是 | 4.5 | 14.0 | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | |||
| override 与 final | N2928 N3206 N3272  | 
4.7 | 2.9 | 14.0* (部分) 17.0*  | 
是 | 4.8 | 12.0 (N2928) 14.0  | 
13.1.1* | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | |||
| decltype | N2343 N3276  | 
4.3 (N2343) 4.8.1  | 
2.9 | 16.0* | 是 | 4.2 (N2343) 4.8  | 
11.0 (N2343) 12.0  | 
11.1 (N2343) | 17.1.0 | 1.1.0 | 5.13 | 是 | 8.4 | 2015 | 7.0 | A.06.25 | 8.52 (N2343) | |
|   C++11 功能特性  | 
  提案  | 
 GCC 
 | 
 Clang 
 | 
 MSVC 
 | 
 Apple Clang 
 | 
 EDG eccp 
 | 
 Intel C++ 
 | 
 IBM XL C++ 
 | 
 IBM Open XL C++ for AIX 
 | 
 IBM Open XL C++ for z/OS 
 | 
 Sun/Oracle C++ 
 | 
 Embarcadero C++ Builder 
 | 
 Cray 
 | 
 Nvidia HPC C++ (ex PGI)* 
 | 
 Nvidia nvcc 
 | 
 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* N2240 N2244 N2255 N2342 N2984 N3142  | 
4.3* 4.8* 5  | 
3.0 | 14.0* (部分)* 19.0 (2015)*  | 
是 | 17.1.0 | 5.13 | 是 | |
| 垃圾收集与基于可达性的泄漏检测(库支持) | N2670 | 6 (无操作)*  | 
3.4 (无操作)*  | 
19.0 (2015)* (无操作)*  | 
Yes (无操作)*  | 
17.1.0 | |||
容器的成员函数 cbegin、 cend、 crbegin 及 crend | 
N1913 LWG1192  | 
4.3* 4.5  | 
是* | 16.0* | 是* | 17.1.0 | |||
| 金额、时间及十六进制浮点 I/O 操纵符 | N2071 N2072  | 
5 | 3.8 | 19.0 (2015)* | 是 | 17.1.0 | 5.15 | ||
| 禁止 COW (copy-on-write,写时复制)的 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* 
 | 
* - 在版本号上停留可以查看注记 * 查看其他注记
DRnn - 在 "DR" 后的数字 nn 表示应用该缺陷报告的目标 C++ 修订版本,例如 DR20 → C++20。
外部链接
| 可运行的 C++11 示例 |