std::unique_lock::swap(3)

NAME
std::unique_lock::swap - std::unique_lock::swap

Synopsis
   void swap( unique_lock& other ) noexcept; (since C++11)
   Exchanges the internal states of the lock objects.

Parameters
   other - the lock to swap the state with

Return value
   (none)

Example
// Run this code
 #include <iostream>
 #include <mutex>
 int main()
 {
     std::mutex mtx1;
     std::unique_lock<std::mutex> guard1(mtx1);
     std::unique_lock<std::mutex> guard2;
     guard2.swap(guard1);
     if (!guard1 && guard2)
         std::cout << "swapped success\n";
     return 0;
 }

Output:
 swapped success

See also
   std::swap(std::unique_lock) specialization of std::swap for unique_lock
   (C++11) (function template)