并发扩展

来自cppreference.com

C++ 并发扩展 (C++ Extensions for Concurrency) , ISO/IEC TS 19571:2016 ,为 C++ 标准库定义下列新组件:

std::future 的持续及其他扩展

定义于头文件 <experimental/future>
(并发 TS)
以持续和其他特性增强的 std::future 版本
(类模板)
(并发 TS)
以持续和其他特性增强的 std::shared_future 版本
(类模板)
(并发 TS)
使用 std::experimental::futurestd::promise 修改版本
(类模板)
(并发 TS)
使用 std::experimental::futurestd::packaged_task 修改版本
(类模板)
(并发 TS)
产生在所有给定 furure 或 shared_future 均就绪时成为就绪的 future
(函数模板)
(并发 TS)
产生在至少一个给定 future 或 shared_future 就绪时成为就绪的 future
(函数模板)
产生立即就绪并保有指定值的 future
(函数模板)
产生立即就绪并保有给定异常的 future
(函数模板)

特性测试宏

定义于头文件 <experimental/future>
__cpp_lib_experimental_future_continuations
至少为 201505 的值,指示支持 future::then 和其他扩展
(宏常量)
定义于头文件 <experimental/latch>
__cpp_lib_experimental_latch
至少为 201505 的值,指示支持 latch 类型
(宏常量)
定义于头文件 <experimental/barrier>
__cpp_lib_experimental_barrier
至少为 201505 的值,指示支持 barrier 类型
(宏常量)
定义于头文件 <experimental/atomic>
__cpp_lib_experimental_atomic_smart_pointers
至少为 201505 的值,指示支持原子智能指针
(宏常量)

并入 C++20

并发 TS 的下列组件已并入 C++20 标准。

闩和屏障

定义于头文件 <experimental/latch>
(并发 TS)
单次使用的线程屏障
(类)
定义于头文件 <experimental/barrier>
(并发 TS)
可复用线程屏障
(类)
(并发 TS)
带有在完成时的可定制行为的可复用线程屏障
(类)

原子智能指针

这些类模板替换 shared_ptr 的原子函数重载

定义于头文件 <experimental/atomic>
std::shared_ptr 的原子版本
(类模板)
(并发 TS)
std::weak_ptr 的原子版本
(类模板)