Namespaces
Variants

Extensions for concurrency

From cppreference.net

Расширения C++ для параллелизма, ISO/IEC TS 19571:2016, определяет следующие новые компоненты для стандартной библиотеки C++:

Содержание

Продолжения и другие расширения для std::future

Определено в заголовочном файле <experimental/future>
(concurrency TS)
версия std::future с расширенными возможностями, включая продолжения и другие функции
(шаблон класса)
(concurrency TS)
версия std::shared_future с расширенными возможностями, включая продолжения и другие функции
(шаблон класса)
(concurrency TS)
модифицированная версия std::promise , которая использует std::experimental::future
(шаблон класса)
(concurrency TS)
модифицированная версия std::packaged_task , которая использует std::experimental::future
(шаблон класса)
(concurrency TS)
создает future, который становится готовым, когда все заданные future или shared_futures готовы
(шаблон функции)
(concurrency TS)
создает future, который становится готовым, когда хотя бы один из заданных future или shared_futures готов
(шаблон функции)
(concurrency TS)
создает future, который готов немедленно и содержит заданное значение
(шаблон функции)
(concurrency TS)
создает 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

Следующие компоненты Concurrency TS были включены в стандарт C++20.

Защелки и барьеры

Определено в заголовочном файле <experimental/latch>
(concurrency TS)
однократный барьер для потоков
(класс)
Определено в заголовочном файле <experimental/barrier>
(concurrency TS)
многократный барьер для потоков
(класс)
(concurrency TS)
многократный барьер для потоков с настраиваемым поведением при завершении
(класс)

Атомарные умные указатели

Эти шаблоны классов заменяют перегруженные атомарные функции shared_ptr

Определено в заголовочном файле <experimental/atomic>
(concurrency TS)
атомарная версия std::shared_ptr
(шаблон класса)
(concurrency TS)
атомарная версия std::weak_ptr
(шаблон класса)