Расширения для конкуренции
Материал из cppreference.com
< cpp | experimental
Расширения C++ для Конкуренции, ISO/IEC ТС 19571:2016, определяют следующие новые компоненты для стандартной библиотеки C++:
Содержание |
[править] Продолжения и другие расширения для std::future
Определены в заголовочном файле
<experimental/future> | |
(ТС конкуренции) |
версия std::future дополненная продолжениями и другой функциональностью (шаблон класса) |
(ТС конкуренции) |
версия std::shared_future, дополненная продолжениями и другой функциональностью (шаблон класса) |
(ТС конкуренции) |
модифицированная версия std::promise, в которой используется std::experimental::future (шаблон класса) |
(ТС конкуренции) |
модифицированная версия std::packaged_task, в которой используется std::experimental::future (шаблон класса) |
(ТС конкуренции) |
создаёт разделяемое состояние, которое становится готовым, когда готовы все заданные futures или shared_futures (шаблон функции) |
(ТС конкуренции) |
создаёт разделяемое состояние, которое становится готовым, когда будет готов хотя бы один из заданных futures или shared_futures (шаблон функции) |
(ТС конкуренции) |
создаёт разделяемое состояние, которое готово немедленно и хранит заданное значение (шаблон функции) |
(ТС конкуренции) |
создаёт разделяемое состояние, которое готово немедленно и содержит данное исключение (шаблон функции) |
[править] Макросы тестирования функциональности
Определены в заголовочном файле
<experimental/future> | |
__cpp_lib_experimental_future_continuations |
значение не менее 201505 указывает, что future::then и другие расширения поддерживаются (макроконстанта) |
Определены в заголовочном файле
<experimental/latch> | |
__cpp_lib_experimental_latch |
значение не менее 201505 указывает, что тип защёлки поддерживается (макроконстанта) |
Определены в заголовочном файле
<experimental/barrier> | |
__cpp_lib_experimental_barrier |
значение не менее 201505 указывает, что тип барьера поддерживается (макроконстанта) |
Определены в заголовочном файле
<experimental/atomic> | |
__cpp_lib_experimental_atomic_smart_pointers |
значение не менее 201505 указывает, что атомарные умные указатели поддерживаются (макроконстанта) |
[править] Объединено с C++20
Следующие компоненты ТС Конкуренции были приняты в стандарт C++20.
[править] Защёлки и барьеры
Определены в заголовочном файле
<experimental/latch> | |
(ТС конкуренции) |
одноразовый потоковый барьер (класс) |
Определены в заголовочном файле
<experimental/barrier> | |
(ТС конкуренции) |
многоразовый потоковый барьер (класс) |
(ТС конкуренции) |
многоразовый потоковый барьер с настраиваемым поведением при завершении (класс) |
[править] Атомарные умные указатели
Эти шаблоны классов заменяют перегрузки атомарных функций shared_ptr
Определены в заголовочном файле
<experimental/atomic> | |
(ТС конкуренции) |
атомарная версия std::shared_ptr (шаблон класса) |
(ТС конкуренции) |
атомарная версия std::weak_ptr (шаблон класса) |