C++ 标准库扩展,版本 3
来自 cppreference.com
< cpp | experimental
C++ 库基础扩展的版本 3,除了在 版本 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 资源句柄包装器 (类模板) |
[编辑] 特性测试宏
在头文件
<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 的。