diff options
Diffstat (limited to 'libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc')
-rw-r--r-- | libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc b/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc index 399de7a5ae6..7d4f5bfc386 100644 --- a/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc +++ b/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc @@ -51,3 +51,28 @@ test01() std::scoped_lock l2(m2, m3); check_type<std::scoped_lock<Lockable, std::mutex>>(l2); } + +void +test02() +{ + std::scoped_lock l0(std::adopt_lock); + check_type<std::scoped_lock<>>(l0); + + struct BasicLockable { + void lock() { } + void unlock() { } + } m1; + + std::scoped_lock l1(std::adopt_lock, m1); + check_type<std::scoped_lock<BasicLockable>>(l1); + + struct Lockable { + void lock() { } + void unlock() { } + bool try_lock() { return true; } + } m2; + + std::mutex m3; + std::scoped_lock l2(std::adopt_lock, m2, m3); + check_type<std::scoped_lock<Lockable, std::mutex>>(l2); +} |