33 Concurrency support library [thread]

33.6 Mutual exclusion [thread.mutex]

33.6.5 Locks [thread.lock]

33.6.5.5 Class template shared_lock [thread.lock.shared]

33.6.5.5.4 Modifiers [thread.lock.shared.mod]

void swap(shared_lock& sl) noexcept;
Effects: Swaps the data members of *this and sl.
mutex_type* release() noexcept;
Postconditions: pm == nullptr and owns == false.
Returns: The previous value of pm.
template<class Mutex> void swap(shared_lock<Mutex>& x, shared_lock<Mutex>& y) noexcept;
Effects: As if by x.swap(y).