文档目录

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 与 constinit

    • consteval:立即函数(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 中使用结构化绑定。