Namespaces
Variants

std::barrier<CompletionFunction>:: barrier

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
constexpr explicit barrier ( std:: ptrdiff_t expected,
CompletionFunction f = CompletionFunction ( ) ) ;
(1) (depuis C++20)
barrier ( const barrier & ) = delete ;
(2) (depuis C++20)
1) Définit à la fois le compte attendu initial pour chaque phase et le compte attendu actuel pour la première phase à expected , initialise l'objet fonction de complétion avec std :: move ( f ) , puis démarre la première phase. Le comportement est indéfini si expected est négatif ou supérieur à max() .
2) Le constructeur de copie est supprimé. barrier n'est ni copiable ni déplaçable.

Paramètres

expected - valeur initiale du compteur attendu
f - objet fonction de complétion à appeler lors de l'étape d'achèvement de phase

Exceptions

1) Toute exception levée par le constructeur de déplacement de CompletionFunction .

Notes

expected est autorisé à être zéro. Cependant, appeler toute fonction membre non statique autre que le destructeur sur une telle barrier entraîne un comportement indéfini. En d'autres termes, une telle barrier ne peut être que détruite.