Extensions for concurrency
From cppreference.net
<
cpp
|
experimental
Расширения 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
(шаблон класса) |