B.4 - C++20
Key Takeaway
C++20 是什么?
2020年2月,ISO (国际标准化组织) 通过了C++的新版本——C++20。C++20是自C++11以来,包含最多变化的版本。
C++20 的改进
这里列出了C++ 20增加的主要改进。请注意,这个列表不是全面的,而是旨在突出一些感兴趣的关键改进点。
- 通过
auto
参数支持缩写函数模板(8.15 - 具有多种类型的函数模板) Chrono
扩展用于支持日历和时区(暂无教程)- Concepts,用于对模板参数进行限制 (暂无教程)
- Constexpr virtual functions,
unions
,try
,catch
,dynamic_cast
, andtypeid
(暂无教程) Constinit
关键字,用于断言某个变量被静态初始化(暂无教程)- 协程 (暂无教程)
- 指定初始化(10.6 - 结构体的聚合初始化)
- 使用
consteval
创建即时函数 (6.14 - Constexpr 和 consteval 函数) - 模块,作为
#include
的替代品(暂无教程) - Ranges (暂无教程)
std::erase
(暂无教程)std::make_shared
for arrays (暂无教程)std::map::contains()
(暂无教程)std::span
(暂无教程)- 字符串格式化库(暂无教程,参见 https://en.cppreference.com/w/cpp/utility/format)
- 字符串字面量作为模板参数 (暂无教程)
- 使用飞船运算符
<=>
进行三路比较(暂无教程) - Using scoped enums (暂无教程)
- Views (暂无教程)