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