最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function template
<mutex>

# std::swap (非メンバ関数)(C++11)

    namespace std {
      template <class Mutex>
      void swap(unique_lock<Mutex>& x, unique_lock<Mutex>& y) noexcept;
    }

## 概要

2つの`unique_lock`オブジェクトを入れ替える

## 効果

    x.swap(y);

## 戻り値

なし

## 例外

投げない

## 例

    #include <mutex>
    #include <utility>

    int main()
    {
      std::mutex mtx;
      {
        std::unique_lock<std::mutex> lk1(mtx);
        std::unique_lock<std::mutex> lk2;

        std::swap(lk1, lk2);

      } // lk1はunlock()せず、lk2がunlock()する
    }

### 出力

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: 2012 ✅, 2013 ✅, 2015 ✅

## 参照