Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 1.43 KB

swap.md

File metadata and controls

71 lines (52 loc) · 1.43 KB

swap

  • memory[meta header]
  • std[meta namespace]
  • unique_ptr[meta class]
  • function[meta id-type]
  • cpp11[meta cpp]
void swap(unique_ptr& x) noexcept;           // (1) C++11
constexpr void swap(unique_ptr& x) noexcept; // (1) C++23

概要

他のunique_ptrオブジェクトとデータを入れ替える。

要件

デリータDが、例外を投げないという保証のもとにswap可能であること。

効果

*thisxが保持する、ポインタとデリータオブジェクトそれぞれに対して、swap()関数を実行する。

戻り値

なし

#include <iostream>
#include <memory>

int main()
{
  std::unique_ptr<int> a(new int(3));
  std::unique_ptr<int> b(new int(1));

  std::cout << a << std::endl;
  std::cout << b << std::endl;

  // aとbを入れ替える
  a.swap(b);

  std::cout << a << std::endl;
  std::cout << b << std::endl;
}
  • swap[color ff0000]

出力例

0x14ab010
0x14ab060
0x14ab060
0x14ab010

バージョン

言語

  • C++11

処理系

  • GCC: 4.4.7 [mark verified]
  • Clang: 3.0 [mark verified]
  • ICC: ?
  • Visual C++: 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]

参照