最終更新日時(UTC):
が更新

履歴 編集

function template
<memory>

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

namespace std {
  template <class T, class D>
  void swap(unique_ptr<T, D>& a, unique_ptr<T, D>& b) noexcept; // (1) C++11

  template <class T, class D>
  constexpr void swap(unique_ptr<T, D>& a, unique_ptr<T, D>& b) noexcept; // (1) C++23
}

概要

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

効果

a.swap(b);

戻り値

なし

#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を入れ替える
  std::swap(a, b);

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

出力例

0x14ab010
0x14ab060
0x14ab060
0x14ab010

バージョン

言語

  • C++11

処理系

参照