Namespaces
Variants

Extensions for concurrency

From cppreference.net

Las Extensiones de C++ para Concurrencia, ISO/IEC TS 19571:2016, definen los siguientes componentes nuevos para la biblioteca estándar de C++:

Contenidos

Continuaciones y otras extensiones para std::future

Definido en el encabezado <experimental/future>
(concurrency TS)
una versión de std::future mejorada con continuaciones y otras características
(plantilla de clase)
(concurrency TS)
una versión de std::shared_future mejorada con continuaciones y otras características
(plantilla de clase)
(concurrency TS)
una versión modificada de std::promise que utiliza std::experimental::future
(plantilla de clase)
(concurrency TS)
una versión modificada de std::packaged_task que utiliza std::experimental::future
(plantilla de clase)
(concurrency TS)
produce un future que se vuelve listo cuando todos los futures o shared_futures dados están listos
(plantilla de función)
(concurrency TS)
produce un future que se vuelve listo cuando al menos uno de los futures o shared_futures dados está listo
(plantilla de función)
(concurrency TS)
produce un future que está listo inmediatamente y contiene el valor dado
(plantilla de función)
(concurrency TS)
produce un future que está listo inmediatamente y contiene la excepción dada
(plantilla de función)

Macros de prueba de características

Definido en el encabezado <experimental/future>
__cpp_lib_experimental_future_continuations
un valor de al menos 201505 indica que future::then y otras extensiones están soportadas
(constante de macro)
Definido en el encabezado <experimental/latch>
__cpp_lib_experimental_latch
un valor de al menos 201505 indica que el tipo latch está soportado
(constante de macro)
Definido en el encabezado <experimental/barrier>
__cpp_lib_experimental_barrier
un valor de al menos 201505 indica que el tipo barrier está soportado
(constante de macro)
Definido en el encabezado <experimental/atomic>
__cpp_lib_experimental_atomic_smart_pointers
un valor de al menos 201505 indica que los punteros inteligentes atómicos están soportados
(constante de macro)

Incorporado en C++20

Los siguientes componentes del Concurrency TS han sido adoptados en el estándar C++20.

Latches y barreras

Definido en el encabezado <experimental/latch>
(concurrency TS)
barrera de hilos de un solo uso
(clase)
Definido en el encabezado <experimental/barrier>
(concurrency TS)
barrera de hilos reutilizable
(clase)
(concurrency TS)
barrera de hilos reutilizable con comportamiento personalizable al completarse
(clase)

Punteros inteligentes atómicos

Estas plantillas de clase reemplazan las sobrecargas de funciones atómicas de shared_ptr

Definido en el encabezado <experimental/atomic>
(concurrency TS)
versión atómica de std::shared_ptr
(plantilla de clase)
(concurrency TS)
versión atómica de std::weak_ptr
(plantilla de clase)