1ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant//===----------------------------------------------------------------------===//
2ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant//
3ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant//                     The LLVM Compiler Infrastructure
4ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant//
5ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
7ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant//
8ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant//===----------------------------------------------------------------------===//
9ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant
10a3eac518e64aa0230894e4dde26c3f9714609e64Asiri Rathnayake// UNSUPPORTED: c++98, c++03, c++11
11ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant// <shared_mutex>
12ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant
13ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant// template <class Mutex> class shared_lock;
14ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant
15ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant// shared_lock& operator=(shared_lock const&) = delete;
16ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant
17ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant#include <shared_mutex>
18ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant
19f9f95be93091c60e7c9034670f298d5a2fba8686David Majnemerstd::shared_timed_mutex m0;
20f9f95be93091c60e7c9034670f298d5a2fba8686David Majnemerstd::shared_timed_mutex m1;
21ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant
22ba898e42081aec544a04d282834aa99b13d57803Howard Hinnantint main()
23ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant{
24f9f95be93091c60e7c9034670f298d5a2fba8686David Majnemer    std::shared_lock<std::shared_timed_mutex> lk0(m0);
25f9f95be93091c60e7c9034670f298d5a2fba8686David Majnemer    std::shared_lock<std::shared_timed_mutex> lk1(m1);
26ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant    lk1 = lk0;
27ba898e42081aec544a04d282834aa99b13d57803Howard Hinnant}
28