1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // UNSUPPORTED: libcpp-has-no-threads, c++98, c++03
14 // template <class Mutex> class unique_lock;
16 // unique_lock(unique_lock&& u);
20 #include "nasty_containers.hpp"
27 std::unique_lock<M> lk0(m);
28 std::unique_lock<M> lk = std::move(lk0);
29 assert(lk.mutex() == std::addressof(m));
30 assert(lk.owns_lock() == true);
31 assert(lk0.mutex() == nullptr);
32 assert(lk0.owns_lock() == false);
35 typedef nasty_mutex M;
37 std::unique_lock<M> lk0(m);
38 std::unique_lock<M> lk = std::move(lk0);
39 assert(lk.mutex() == std::addressof(m));
40 assert(lk.owns_lock() == true);
41 assert(lk0.mutex() == nullptr);
42 assert(lk0.owns_lock() == false);