C++ 标准库扩展,版本 3
来自 cppreference.cn
< cpp | experimental
C++ 库基础扩展版本 3,ISO/IEC TS 19568:2024,除了版本 1 和版本 2 中定义的组件外,还为 C++ 标准库定义了以下新组件。
合并到 C++17/20 的组件以及以下组件在 LFTS v3 中被移除
- std::experimental::make_array,
- std::experimental::erased_type,
- std::experimental::packaged_task,以及
- std::experimental::promise.
[编辑] 作用域守卫
定义于头文件
<experimental/scope> | |
包装一个函数对象,并在退出作用域时调用它 (类模板) | |
包装一个函数对象,并在通过异常退出作用域时调用它 (类模板) | |
包装一个函数对象,并在正常退出作用域时调用它 (类模板) | |
通用 RAII 资源句柄包装器 (类模板) |
[编辑] 特性测试宏
__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。