Namespaces
Variants

std::scoped_lock<MutexTypes...>:: scoped_lock

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
std::scoped_lock
Member functions
scoped_lock::scoped_lock
explicit scoped_lock ( MutexTypes & ... m ) ;
(1) (depuis C++17)
scoped_lock ( std:: adopt_lock_t , MutexTypes & ... m ) ;
(2) (depuis C++17)
scoped_lock ( const scoped_lock & ) = delete ;
(3) (depuis C++17)

Acquiert la propriété des mutex donnés m .

1) Si sizeof... ( MutexTypes ) == 0 , ne fait rien. Sinon, si sizeof... ( MutexTypes ) == 1 , appelle effectivement m. lock ( ) . Sinon, appelle effectivement std:: lock ( m... ) .
2) Acquiert la propriété des mutex m... sans tenter de verrouiller l'un d'entre eux. Le comportement est indéfini à moins que le thread courant ne détienne un verrou non partagé (c'est-à-dire un verrou acquis par lock , try_lock , try_lock_for , ou try_lock_until ) sur chaque objet dans m... .
3) Le constructeur de copie est supprimé.

Le comportement n'est pas défini si m est détruit avant que l'objet scoped_lock ne le soit.

Paramètres

m - mutexes dont il faut acquérir la propriété

Exceptions

1) Lance toutes les exceptions levées par m. lock ( ) .
2) Ne lance rien.

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
P0739R0 C++17 adopt_lock_t le paramètre était en dernier, empêchant la déduction d'arguments de modèle de classe déplacé en premier