Namespaces
Variants

C++ standard libraries extensions, version 3

From cppreference.net

Версия 3 расширений для библиотечных компонентов C++, ISO/IEC TS 19568:2024, определяет следующие новые компоненты для стандартной библиотеки C++, в дополнение к тем, что определены в версии 1 и версии 2 .

Компоненты, включенные в C++17/20, и следующие компоненты удалены в LFTS v3:

Охранник области видимости

Определено в заголовочном файле <experimental/scope>
оборачивает функциональный объект и вызывает его при выходе из области видимости
(шаблон класса)
оборачивает функциональный объект и вызывает его при выходе из области видимости через исключение
(шаблон класса)
оборачивает функциональный объект и вызывает его при нормальном выходе из области видимости
(шаблон класса)
универсальная обертка для дескриптора ресурса с RAII
(шаблон класса)

Макросы проверки возможностей

Определено в заголовочном файле <experimental/memory_resource>
__cpp_lib_experimental_memory_resources
значение не менее 201803 указывает, что resource_adaptor поддерживается
(макроконстанта)
Определено в заголовочном файле <experimental/functional>
__cpp_lib_experimental_function_polymorphic_allocator
значение не менее 202211 указывает, что std:: pmr :: polymorphic_allocator <> используется для std::experimental::function
(макроконстанта)
Определено в заголовочном файле <experimental/scope>
__cpp_lib_experimental_scope
значение не менее 201902 указывает, что охранники области видимости поддерживаются
(макроконстанта)

Примечания

Значение __cpp_lib_experimental_memory_resources было увеличено в LFTS v3, поскольку дизайн resource_adaptor был переоснован на std::pmr::memory_resource .