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
å¦ēē³»
- GCC: 4.4.7 ā
- Clang: 3.0 ā
- Visual C++: 2010 ā , 2012 ā , 2013 ā