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

주어진 뮤텍스 m 의 소유권을 획득합니다.

1) 만약 sizeof... ( MutexTypes ) == 0 이면, 아무 작업도 수행하지 않습니다. 그렇지 않고 만약 sizeof... ( MutexTypes ) == 1 이면, 효과적으로 m. lock ( ) 를 호출합니다. 그렇지 않으면, 효과적으로 std:: lock ( m... ) 를 호출합니다.
2) 뮤텍스들 m... 의 소유권을 획득합니다. 이때 어떤 뮤텍스도 잠그려 시도하지 않습니다. 현재 스레드가 m... 내 각 객체에 대해 비공유 잠금(즉, lock , try_lock , try_lock_for , 또는 try_lock_until 으로 획득한 잠금)을 보유하지 않는 경우, 동작은 정의되지 않습니다.
3) 복사 생성자가 삭제되었습니다.

m scoped_lock 객체보다 먼저 소멸되는 경우 동작은 정의되지 않습니다.

매개변수

m - 소유권을 획득할 뮤텍스

예외

1) m. lock ( ) 가 발생시키는 모든 예외를 발생시킵니다.
2) 아무것도 throw하지 않습니다.

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
P0739R0 C++17 adopt_lock_t 매개변수가 마지막 위치에 있어 클래스 템플릿 인수 추론을 방해함 첫 번째 위치로 이동됨