C++ 标准库扩展,版本 3
来自 cppreference.cn
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。