Макросы проверки возможностей библиотеки (начиная с C++20)
Каждый из следующих макросов определён, если подключён заголовок <version> или один из соответствующих заголовков, указанных в таблице.
Реализация с усиленной защитой также определяет следующие макросы.
| Имя макроса | Значение | Заголовок | |
|---|---|---|---|
__cpp_lib_hardened_array |
202502L |
<array> |
|
__cpp_lib_hardened_basic_stacktrace |
202506L |
<stacktrace> |
|
__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_common_iterator |
202506L |
<iterator> |
|
__cpp_lib_hardened_counted_iterator |
202506L |
<iterator> |
|
__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_shared_ptr_array |
202506L |
<memory> |
|
__cpp_lib_hardened_span |
202502L |
<span> |
|
__cpp_lib_hardened_valarray |
202502L |
<valarray> |
|
__cpp_lib_hardened_vector |
202502L |
<vector> |
|
__cpp_lib_hardened_view_interface |
202506L |
<ranges> |
|
| Общее число макросов: 19 | |||
Примечания
Каждое значение в столбце «Значение» соответствует шаблону: "yyyymmL", где "yyyy" — год, а "mm" — месяц, когда соответствующий набор возможностей был принят для стандартизации. Некоторые значения были увеличены после их введения, если возможности данной функции расширялись. В таблице выше приведены только последние значения (то есть значения из последнего проекта стандарта языка C++). Полный набор значений, включая исходные и промежуточные, можно найти в этой таблице.
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
| LWG 4126 | C++20 C++23 | некоторые макросы проверки возможностей для полностью автономных возможностей не были автономными | они также являются автономными |
См. также
| Проверка возможностей (C++20) | Набор макросов препроцессора для проверки наличия соответствующих возможностей языка и библиотеки C++ |
| Документация C++ о Заголовках, требуемых для автономной реализации | |
| Документация C++ о Предопределённых символах макросов | |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/feature_test