Extensions for concurrency
From cppreference.net
<
cpp
|
experimental
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) |