Namespaces
Variants

Extensions for concurrency

From cppreference.net

Les Extensions C++ pour la concurrence, ISO/IEC TS 19571:2016, définissent les nouveaux composants suivants pour la bibliothèque standard C++ :

Table des matières

Continuations et autres extensions pour std::future

Défini dans l'en-tête <experimental/future>
(concurrency TS)
une version de std::future améliorée avec des continuations et d'autres fonctionnalités
(modèle de classe)
(concurrency TS)
une version de std::shared_future améliorée avec des continuations et d'autres fonctionnalités
(modèle de classe)
(concurrency TS)
une version modifiée de std::promise qui utilise std::experimental::future
(modèle de classe)
(concurrency TS)
une version modifiée de std::packaged_task qui utilise std::experimental::future
(modèle de classe)
(concurrency TS)
produit un futur qui devient prêt lorsque tous les futurs ou shared_futures donnés sont prêts
(modèle de fonction)
(concurrency TS)
produit un futur qui devient prêt lorsqu'au moins un des futurs ou shared_futures donnés est prêt
(modèle de fonction)
(concurrency TS)
produit un futur qui est immédiatement prêt et contient la valeur donnée
(modèle de fonction)
(concurrency TS)
produit un futur qui est immédiatement prêt et contient l'exception donnée
(modèle de fonction)

Macros de test de fonctionnalités

Défini dans l'en-tête <experimental/future>
__cpp_lib_experimental_future_continuations
une valeur d'au moins 201505 indique que future::then et autres extensions sont supportées
(constante de macro)
Défini dans l'en-tête <experimental/latch>
__cpp_lib_experimental_latch
une valeur d'au moins 201505 indique que le type latch est supporté
(constante de macro)
Défini dans l'en-tête <experimental/barrier>
__cpp_lib_experimental_barrier
une valeur d'au moins 201505 indique que le type barrier est supporté
(constante de macro)
Défini dans l'en-tête <experimental/atomic>
__cpp_lib_experimental_atomic_smart_pointers
une valeur d'au moins 201505 indique que les pointeurs intelligents atomiques sont supportés
(constante de macro)

Intégré dans C++20

Les composants suivants du Concurrency TS ont été adoptés dans la norme C++20.

Verrous et barrières

Défini dans l'en-tête <experimental/latch>
(concurrency TS)
barrière de threads à usage unique
(classe)
Défini dans l'en-tête <experimental/barrier>
(concurrency TS)
barrière de threads réutilisable
(classe)
(concurrency TS)
barrière de threads réutilisable avec comportement personnalisable à l'achèvement
(classe)

Pointeurs intelligents atomiques

Ces modèles de classe remplacent les surcharges de fonctions atomiques du shared_ptr

Défini dans l'en-tête <experimental/atomic>
(concurrency TS)
version atomique de std::shared_ptr
(modèle de classe)
(concurrency TS)
version atomique de std::weak_ptr
(modèle de classe)