Skip to content

Latest commit

 

History

History
69 lines (49 loc) · 1.01 KB

swap_free.md

File metadata and controls

69 lines (49 loc) · 1.01 KB

swap (非メンバ関数)

  • mutex[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp11[meta cpp]
namespace std {
  template <class Mutex>
  void swap(unique_lock<Mutex>& x, unique_lock<Mutex>& y) noexcept;
}

概要

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

効果

x.swap(y);
  • swap[link swap.md]

戻り値

なし

例外

投げない

#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()する
}
  • std::swap[color ff0000]

出力

バージョン

言語

  • C++11

処理系

  • Clang: ??
  • GCC: 4.7.0 [mark verified]
  • ICC: ??
  • Visual C++: 2012 [mark verified], 2013 [mark verified], 2015 [mark verified]

参照