ęœ€ēµ‚ę›“ę–°ę—„ę™‚:
ćŒę›“ę–°

屄歓 編集

function
<memory>

std::unique_ptr::swap(C++11)

void swap(unique_ptr& x) noexcept;           // (1) C++11
constexpr void swap(unique_ptr& x) noexcept; // (1) C++23

ꦂ要

他恮unique_ptrć‚Ŗćƒ–ć‚øć‚§ć‚ÆćƒˆćØćƒ‡ćƒ¼ć‚æć‚’å…„ć‚Œę›æćˆć‚‹ć€‚

要件

ćƒ‡ćƒŖćƒ¼ć‚æDćŒć€ä¾‹å¤–ć‚’ęŠ•ć’ćŖć„ćØć„ć†äæčØ¼ć®ć‚‚ćØć«swapåÆčƒ½ć§ć‚ć‚‹ć“ćØć€‚

åŠ¹ęžœ

*thisとxćŒäæęŒć™ć‚‹ć€ćƒć‚¤ćƒ³ć‚æćØćƒ‡ćƒŖćƒ¼ć‚æć‚Ŗćƒ–ć‚øć‚§ć‚Æćƒˆćć‚Œćžć‚Œć«åÆ¾ć—ć¦ć€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.get() << std::endl;
  std::cout << b.get() << std::endl;

  // aとbć‚’å…„ć‚Œę›æćˆć‚‹
  a.swap(b);

  std::cout << a.get() << std::endl;
  std::cout << b.get() << std::endl;
}

å‡ŗåŠ›ä¾‹

0x14ab010
0x14ab060
0x14ab060
0x14ab010

ćƒćƒ¼ć‚øćƒ§ćƒ³

čØ€čŖž

  • C++11

処理系

å‚ē…§