Namespaces
Variants

C++14

From cppreference.net

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++ (原 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) ,普通函数的返回类型推导  ( 功能测试宏 ) * ( 功能测试宏 ) * 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
变量模板 ( 功能测试宏 ) * 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
带有 默认成员初始化器 的聚合体 ( 功能测试宏 ) * 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 N/A 3.4 N/A N/A N/A 17.4 N/A 8.6 10.3 17.1.0 1.1.0 N/A N/A
[[ 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
带大小释放 ( 功能测试宏 ) * 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++ (原 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_of SFINAE ( 功能测试宏 ) * 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 ( 功能测试宏 ) * 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
异构关联查找  ( FTM ) * 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
修复不带 const constexpr 成员函数 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
用于 转换特征 的别名模板 ( 功能测试宏 ) * N3655 4.9 3.4 18.0*
std::complex 的用户定义字面量 ( 功能测试宏 ) * N3779 4.9 3.4 19.0 (2015)*
DR11: std::is_null_pointer ( 功能测试宏 ) * LWG2247 4.9 3.4 19.0 (2015)*
std::is_final ( 特性测试宏 ) * LWG2112 5 3.4 19.0 (2015)*
std::make_reverse_iterator ( 功能测试宏 ) * LWG2285 5 3.4 19.0 (2015)*
std::shared_timed_mutex ( 功能测试宏 ) * N3891 4.9 3.5 19.0 (2015)*
std::tuple_element_t ( 功能测试宏 ) * 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*

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

外部链接

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