Extensions for concurrency
From cppreference.com
< cpp | experimental
The C++ Extensions for Concurrency, ISO/IEC TS 19571:2016, defines the following new components for the C++ standard library:
Contents |
[edit] Continuations and other extensions for std::future
Defined in header
<experimental/future> |
|
(concurrency TS)
|
A version of std::future enhanced with continuations and other features (class template) |
(concurrency TS)
|
A version of std::shared_future enhanced with continuations and other features (class template) |
(concurrency TS)
|
a modified version of std::promise that uses std::experimental::future (class template) |
(concurrency TS)
|
a modified version of std::packaged_task that uses std::experimental::future (class template) |
(concurrency TS)
|
produces a future that becomes ready when all given futures or shared_futures are ready (function template) |
(concurrency TS)
|
produces a future that becomes ready when at least one of the given futures or shared_futures is ready (function template) |
(concurrency TS)
|
produces a future that is ready immediately and holds the given value (function template) |
(concurrency TS)
|
produces a future that is ready immediately and holds the given exception (function template) |
[edit] Latches and barriers
Defined in header
<experimental/latch> |
|
(concurrency TS)
|
single-use thread barrier (class) |
Defined in header
<experimental/barrier> |
|
(concurrency TS)
|
reusable thread barrier (class) |
(concurrency TS)
|
reusable thread barrier with customizable behavior on completion (class) |
[edit] Atomic smart pointers
These class templates replace the shared_ptr atomic function overloads
Defined in header
<experimental/atomic> |
|
(concurrency TS)
|
atomic version of std::shared_ptr (class template) |
(concurrency TS)
|
atomic version of std::weak_ptr (class template) |
[edit] Feature test macros
Defined in header
<experimental/future> |
|
a value of at least 201505 indicates that future::then and other extensions are supported (macro constant) |
|
Defined in header
<experimental/latch> |
|
a value of at least 201505 indicates that the latch type is supported (macro constant) |
|
Defined in header
<experimental/barrier> |
|
a value of at least 201505 indicates that barrier type is supported (macro constant) |
|
Defined in header
<experimental/atomic> |
|
a value of at least 201505 indicates that the atomic smart pointers are supported (macro constant) |