C++20 是 CPP 语言的一次重大变革,引入了大量的新特性:

  • 模块化 (Modules): C++20 引入了模块化的概念,允许将代码分割成独立的模块,以替代传统的头文件 #include 方式。模块化可以提高编译速度,并减少构建系统的依赖关系。
  • 概念 (Concepts): 概念是一种对模板参数进行约束的机制,可用于定义模板参数的操作和特性要求。概念使得模板的错误信息更加清晰,并提供更好的代码自动补全和静态分析。
  • 协程 (Coroutines): C++20 引入了协程的支持,通过 co_awaitco_yield 关键字,可以轻松地实现异步代码和可定制的迭代器行为。
  • 三路比较 (Three-Way Comparison): C++20 引入了一个标准的三路比较 <=> 符,使得类型可以方便地进行比较操作,并将结果返回为 std::strong_ordering 类型。
  • Ranges 库: C++20 引入了全新的 Ranges 库,提供了一组高效且功能丰富的算法和迭代器,大大简化了对集合的操作和处理。