命名空间
变体
操作

C++14

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

C++14 特性
 

论文
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++14 库特性

C++14 特性

 
论文

 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
 
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
constexpr 用于 <complex> N3302 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
透明 运算符函数对象  (FTM)* N3421 4.9 3.4 18.0* 是  17.1.0 5.15 10.3
std::result_ofSFINAE  (FTM)* N3462 5 19.0 (Update 2)* 是  17.1.0 5.15 10.3
constexpr 用于 <chrono> N3469 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
constexpr 用于 <array> N3470 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
constexpr 用于 <initializer_list>, <utility><tuple> N3471 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
改进的 std::integral_constant  (FTM)* N3545 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
用户定义字面量 用于 <chrono><string>  (FTM)*  (FTM)* N3642 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
空前向迭代器  (FTM)* N3644 5 (部分支持)
10
3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
std::quoted  (FTM)* N3654 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
std::make_unique  (FTM)* N3656 4.9 3.4 18.0* 是  17.1.0 5.15 10.3
异构关联查找  (FTM)* N3657 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
std::integer_sequence  (FTM)* 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  (FTM)* 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>()  (FTM)* N3670 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
双范围 std::equal, std::is_permutation, std::mismatch  (FTM)* N3671 5 3.4 19.0 (2015)* 是  17.1.0 5.15 10.3
转换特征的别名模板  (FTM)* N3655 4.9 3.4 18.0* 是 
std::complex 的用户定义字面量  (FTM)* N3779 4.9 3.4 19.0 (2015)* 是 
DR11: std::is_null_pointer  (FTM)* LWG2247 4.9 3.4 19.0 (2015)*  
std::is_final  (FTM)* LWG2112 5 3.4 19.0 (2015)*  
std::make_reverse_iterator  (FTM)* LWG2285 5 3.4 19.0 (2015)*  
std::shared_timed_mutex  (FTM)* N3891 4.9 3.5 19.0 (2015)* 是 
std::tuple_element_t  (FTM)* N3887 4.10* 3.5 19.0 (2015)* 是 
 

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。

[编辑] 外部链接

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