Пространства имён
Варианты
Действия

Расширения для конкуренции

Материал из cppreference.com
 
 
Технические спецификации
Библиотека файловой системы (ТС файловой системы)
Основы библиотеки (ТС основ библиотеки)
Основы библиотеки 2 (ТС основ библиотеки v2)
Основы библиотеки 3 (ТС основы библиотеки v3)
Расширения для параллелизма (ТС параллелизма)
Расширения для параллелизма 2 (ТС параллелизма v2)
Расширения для конкуренции 2 (ТС конкуренции v2)
Концепты (ТС концепций)
Диапазоны (ТС диапазонов)
Рефлексия (ТС рефлексии)
Специальные математические функции (ТО специальные функции)
 
 

Расширения 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
(шаблон класса) [править]