Extensions for concurrency - cppreference.com

From cppreference.com

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

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) [edit]

(concurrency TS)

a version of std::shared_future enhanced with continuations and other features
(class template) [edit]

(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) [edit]

(concurrency TS)

produces a future that becomes ready when at least one of the given futures or shared_futures is ready
(function template) [edit]

(concurrency TS)

produces a future that is ready immediately and holds the given value
(function template) [edit]

(concurrency TS)

produces a future that is ready immediately and holds the given exception
(function 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)

Merged into C++20

The following components of the Concurrency TS have been adopted into the C++20 standard.

Latches and barriers

Atomic smart pointers

These class templates replace the shared_ptr atomic function overloads