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