C17
C++ 17 标准功能齐全,已被提议用于标准化。在具有这些功能的实验支持的编译器中,它通常被称为 C++ 1z。
语言扩展
- 折叠表达
- 使用
auto
声明非类型模板参数 - 保证副本省略
- 构造函数的模板参数推导
- 结构化绑定
- 紧凑的嵌套命名空间
- 新属性:
[[fallthrough]]
,[[nodiscard]]
,[[maybe_unused]]
static_assert
的默认消息if
和switch
中的初始化程序- 内联变量
if constexpr
- 表达评估保证顺序
- 过度对齐数据的动态内存分配
库扩展
std::optional
std::variant
std::string_view
merge()
和extract()
用于关联容器- 带有
<filesystem>
标头的 文件系统库 。 - 大多数标准算法的并行版本 (在
<algorithm>
标题中 )。 - 在
<cmath>
标题中 添加数学特殊函数 。 - 在 map <>,unordered_map <>,set <>和 unordered_set <>之间移动节点