文档目录
C++20 核心语言特性
目标:快速掌握 C++20 对语言核心的增强,写出更简洁、更安全的现代代码。
-
1.1 三向比较符(Spaceship Operator)
<=>auto operator<=>(const T&) const = default;一键生成所有比较运算符。- 返回值类型:
std::strong_ordering、std::weak_ordering、std::partial_ordering。
-
1.2 设计化初始化(Designated Initializers)
MyStruct s = { .a = 1, .b = 2 };(C99 风格,C++20 引入)。
-
1.3
consteval与constinitconsteval:立即函数(immediate function),强制编译期执行。constinit:保证变量在静态初始化阶段初始化,避免静态初始化顺序问题。
-
1.4
using enum与 Lambda 增强using enum Color { Red, Green, Blue };简化枚举使用。- Lambda 默认构造、拷贝构造、模板化 lambda(
[]<typename T>(T x){})。
-
1.5 结构化绑定增强
auto [a, b, c] = std::tuple{1, 2.0, "str"};(C++17)。- 结合引用捕获的 Lambda 中使用结构化绑定。