最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function template
<shared_mutex>

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

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

## 概要

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

## 効果

    x.swap(y);

## 戻り値

なし

## 例外

投げない

## 例

    #include <shared_mutex>

    int main()
    {
      std::shared_timed_mutex mtx;
      {
        std::shared_lock<std::shared_timed_mutex> lock1(mtx);
        std::shared_lock<std::shared_timed_mutex> lock2;

        std::swap(lock1, lock2);

      } // lock1はunlock_shared()せず、lock2がunlock_shared()する
    }

### 出力

## バージョン

### 言語

- C++14

### 処理系

- Clang: 3.5 ✅
- GCC: 4.9 ✅
- ICC: ??
- Visual C++: 2015 ✅