命名空间
变体
操作

C++14

来自 cppreference.com
< cpp

C++14 是 C++11 主要版本后的一个次要版本,主要进行了一些小的改进和缺陷修复。它于 2014 年 8 月 18 日宣布通过,并于 2014 年 12 月 15 日发布。

在它被批准之前,C++1y 有时被用来表示它在 2010 年代的发布。

目录

[编辑] 新的语言特性

[编辑] 新的库特性

[编辑] 缺陷报告

C++14 中修复的缺陷报告(276 个核心,158 个库)

[编辑] 编译器支持

[编辑] C++14 核心语言特性

C++14 特性

 
论文

 
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
针对上下文转换的调整措辞 N3323 4.9 3.4 18.0* 4.9 16.0 13.1.2* 17.1.0 1.1.0 5.15 10.3 8.6 16.1 9.0
二进制字面量 N3472 4.3 (GNU)
4.9
2.9 19.0 (2015)* 4.10 11.0 13.1.2* 17.1.0 1.1.0 5.14 10.3 8.6 2015 9.0
decltype(auto),普通函数的返回类型推导 N3638 4.8 (部分)*
4.9
3.3 (部分)*
3.4
19.0 (2015)* 4.9 15.0 13.1.2* 17.1.0 1.1.0 5.15 10.3 8.6 16.1 9.0
初始化/广义 Lambda 捕获 (init-capture) N3648 4.5 (部分)
4.9
3.4 19.0 (2015)* 4.10 15.0 16.1.1* 17.1.0 1.1.0 5.15 10.3 8.6 16.1 9.0
泛型 Lambda 表达式 N3649 4.9 3.4 19.0 (2015)* 4.10 16.0 13.1.2* 17.1.0 1.1.0 5.15 10.3 8.6 16.1 9.0
变量模板 N3651 5 3.4 19.0 (更新 2)* 4.11 17.0 13.1.2* 17.1.0 1.1.0 5.15 10.3 8.6 17.4 9.0
扩展的 constexpr N3652 5 3.4 19.10* 4.11 17.0 13.1.2* 17.1.0 1.1.0 5.15 10.3 8.6 17.4 9.0
具有默认成员初始化器的聚合 N3653 5 3.3 19.10* 4.9 16.0 16.1.1* 17.1.0 1.1.0 5.14 10.3 8.6 16.1 9.0
省略/扩展内存分配 N3664 不适用 3.4 不适用 不适用 不适用 不适用 17.1.0 1.1.0 不适用 10.3 8.6 17.4 不适用
[[deprecated]] 属性 N3760 4.9 3.4 19.0 (2015)* 4.9 15.0*
16.0
13.1.2* 17.1.0 1.1.0 5.14 10.3 8.6 16.1 9.0
大小化释放 N3778 5 3.4 19.0 (2015)* 4.10.1 17.0 16.1.1* 17.1.0 1.1.0 5.14 10.3 8.6 16.1
单引号作为数字分隔符 N3781 4.9 3.4 19.0 (2015)* 4.10 16.0 13.1.2* 17.1.0 1.1.0 5.14 10.3 8.6 2015 9.0
 

C++14 特性
 

论文
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

[编辑] C++14 库特性

C++14 特性

 
论文

 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
用于<complex>constexpr N3302 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
透明运算符函数对象 N3421 4.9 3.4 18.0* 17.1.0 5.15 10.3
std::result_ofSFINAE N3462 5 19.0 (更新 2)* 17.1.0 5.15 10.3
用于<chrono>constexpr N3469 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
用于<array>constexpr N3470 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
用于<initializer_list><utility><tuple>constexpr N3471 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
改进的 std::integral_constant N3545 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
用户定义字面量,用于<chrono><string> N3642 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
空向前迭代器 N3644 5 (部分)
10
3.4 19.0 (2015)* 17.1.0 5.15 10.3
std::quoted N3654 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
std::make_unique N3656 4.9 3.4 18.0* 17.1.0 5.15 10.3
异构关联查找 N3657 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
std::integer_sequence N3658 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
std::shared_timed_mutex N3659 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
std::exchange N3668 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
修复没有 constconstexpr 成员函数 N3669 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
std::get<T>() N3670 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
双范围 std::equalstd::is_permutationstd::mismatch N3671 5 3.4 19.0 (2015)* 17.1.0 5.15 10.3
 

C++14 特性
 

论文
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++14 示例