B-3 C++17 简介
什么是C++17?
2017年9月,国际标准化组织(International Organization for Standardization,简称ISO)批准了C++的新版本——C++17。该版本包含了相当数量的新特性。
C++17的新改进
为方便您了解,以下是C++17新增的主要变更列表。请注意,此列表并非详尽无遗,而是旨在突出部分关键的、值得关注的变更。
- 类模板参数推导(CTAD)(13.14 -- 类模板参数推导(CTAD)与推导指南)
- 编译时解析的if语句(8.4 -- constexpr if语句)
- if语句与switch语句中的初始化器(见13.y -- 使用语言参考)
- 内联变量(7.10 ——跨文件共享全局常量(使用内联变量))
- 折叠表达式(暂无教程)
- 特定情况下的强制复制省略(见14.15节——类初始化与复制省略)
- 嵌套命名空间现可定义为namespace X::Y(7.2节——用户定义命名空间与作用域解析运算符)
- 移除 std::auto_ptr 及其他已弃用的类型
- static_assert 不再要求诊断文本参数(9.6 -- assert 与 static_assert)
- std::any(暂无教程)
- std::byte(暂无教程)
- std::filesystem(暂无教程)
- std::optional(12.15节——std::optional)
- std::shared_ptr现可管理C风格数组(但std::make_shared尚无法创建此类数组)(22.6节——std::shared_ptr)
- std::size(11.2节——数组(第二部分)todo)
- std::string_view(5.8 -- std::string_view 介绍)
- 结构化绑定声明(暂无教程)
- 三字符序列已被移除
- 模板模板参数中现可使用 typename(替代 class)
- UTF-8(u8)字符字面量(暂无教程)

浙公网安备 33010602011771号