何谓 C++20
2020 年 2 月,国际标准化组织(ISO)正式通过了 C++ 的新版本——C++20。C++20 是自 C++11 以来对语言改动最大的一次更新。
C++20 的新增改进
为方便查阅,下面列出 C++20 引入的主要变更。此列表并非穷尽,仅用于凸显关键亮点:
- 通过 auto形参实现的简写函数模板(参见 课程11.8《带多种模板类型的函数模板》)
- Chrono 扩展:日历与时区支持(暂无教程)
- Concepts(概念),用于对模板形参施加约束(暂无教程)
- constexpr dynamic_cast与- typeid(暂无教程)
- constexpr虚函数(暂无教程)
- constexpr try-catch(暂无教程)
- constinit关键字,用于断言变量为静态初始化(暂无教程)
- 协程(Coroutines)(暂无教程)
- 指定初始化器(参见《结构体聚合初始化》章节)
- 使用 consteval关键字的立即函数(参见《constexpr 函数》章节)
- 模块(Modules),作为 #include的替代方案(暂无教程)
- 范围(Ranges)(暂无教程)
- std::erase(暂无教程)
- 用于数组的 std::make_shared(暂无教程)
- std::map::contains()(暂无教程)
- std::span(暂无教程)
- 字符串格式化库(暂无教程,参考 Formatting library (since C++20))
- 字符串字面量作为模板实参(暂无教程)
- 使用三路比较运算符 <=>(spaceship operator)的三路比较(暂无教程)
- 使用作用域枚举(参见《作用域枚举(enum class)》章节)
- 视图(Views)(暂无教程)
