库特性测试宏 (C++20 起)
来自cppreference.com
如果包含 <version> 或下表中指定的标头之一,那么就会定义对应的宏。
加固实现还定义下列宏:
| 宏名 | 值 | 标头 | 独立实现 |
|---|---|---|---|
__cpp_lib_hardened_array
|
202502L | <array> | |
__cpp_lib_hardened_basic_string
|
202502L | <string> | |
__cpp_lib_hardened_basic_string_view
|
202502L | <string_view> | |
__cpp_lib_hardened_bitset
|
202502L | <bitset> | |
__cpp_lib_hardened_deque
|
202502L | <deque> | |
__cpp_lib_hardened_expected
|
202502L | <expected> | |
__cpp_lib_hardened_forward_list
|
202502L | <forward_list> | |
__cpp_lib_hardened_inplace_vector
|
202502L | <inplace_vector> | |
__cpp_lib_hardened_list
|
202502L | <list> | |
__cpp_lib_hardened_mdspan
|
202502L | <mdspan> | |
__cpp_lib_hardened_optional
|
202502L | <optional> | |
__cpp_lib_hardened_span
|
202502L | <span> | |
__cpp_lib_hardened_valarray
|
202502L | <valarray> | |
__cpp_lib_hardened_vector
|
202502L | <vector> | |
| 宏的总数量:14 | |||
注解
“值”列中的每个值都遵循以下模式:"yyyymmL",其中 "yyyy" 是年份,"mm" 是相应功能集被接受标准化的月份。如果给定特性的功能有所扩展,则某些值会在引入后有所增加。上表仅包含最新值(即来自最新的 C++ 语言标准草案)。包括初始值和中间值在内的所有值可在这里找到。
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| 缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
|---|---|---|---|
| LWG 4126 | C++20 C++23 |
某些完全独立的特性对应的特性测试宏不是独立的 | 它们也是独立的 |
参阅
| 功能特性测试 (C++20) | 一套预处理器宏,用于测试与 C++ 语言和库功能相对应的功能 |