C++20
来自cppreference.com
< cpp
C++20 是 C++17 之后的一个大版本,提供了一些重要功能特性(概念、模块、协程和范围)以及其他的语言和库特性。该标准于 2020 年 12 月发布。
| 本节未完成 |
新的语言特性
- 特性测试宏
- 三路比较运算符
<=>andoperator==() = default - 指派初始化式
- 范围
for中的初始化语句和初始化器 - char8_t
- 新属性:
[[no_unique_address]],[[likely]],[[unlikely]] - lambda 初始化捕获中的包展开
- 移除了在多种上下文语境中,使用
typename关键字以消除类型歧义的要求 - consteval 、 constinit
- 更为宽松的 constexpr 要求
- 规定有符号整数以补码实现
- 位移运算符的未定义行为
- 使用圆括号的聚合初始化
- 协程
- 模块
- 约束与概念
- 缩略函数模板
- DR11: 数组 new 可推导数组长度
新的库特性
新的头文件
- <bit>
- <compare>
- <concepts>
- <coroutine>
- <format>
- <numbers>
- <ranges>
- <source_location>
- <span>
- <syncstream>
- <version>
线程支持库中:
库特性
- 库特性测试宏
- 格式化库
- 概念库
- <chrono> 中的日历和时区库
- std::source_location
- std::span
- std::endian:
big/little/native - <bit> 中的整型的幂二运算和 std::bit_cast
- 针对数组的 std::make_shared 支持
- std::remove_cvref
- std::to_address
- 浮点原子对象, std::shared_ptr 原子对象
- 线程协调类:std::barrier, std::latch 和