Extensions for concurrency

From cppreference.com

The C++ Extensions for Concurrency, ISO/IEC TS 19571:xxxx, defines the following new components for the C++ standard library:

Contents

[edit] Continuations and other extensions for std::future

Defined in header <experimental/future>
Continuations
(concurrency TS)
unboxing constructor from future<future<T>>
(public member function of std::experimental::future)
(concurrency TS)
attaches a continuation to a future
(public member function of std::experimental::future)
(concurrency TS)
unboxing constructor from future<shared_future<T>>
(public member function of std::experimental::shared_future)
(concurrency TS)
attaches a continuation to a shared_future
(public member function of std::experimental::shared_future)
Other enhancements
(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)
checks if the shared state is ready
(public member function of std::experimental::future)
(concurrency TS)
checks if the shared state is ready
(public member function of std::experimental::shared_future)
(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>
__cpp_lib_experimental_future_continuations
a value of at least 201505 indicates that future::then and other extensions are supported
(macro constant)
Defined in header <experimental/latch>
__cpp_lib_experimental_latch
a value of at least 201505 indicates that the latch type is supported
(macro constant)
Defined in header <experimental/barrier>
__cpp_lib_experimental_barrier
a value of at least 201505 indicates that barrier type is supported
(macro constant)
Defined in header <experimental/atomic>
__cpp_lib_experimental_atomic_smart_pointers
a value of at least 201505 indicates that the atomic smart pointers are supported
(macro constant)