std::unique_ptr<T,Deleter>::swap
提供: cppreference.com
< cpp | memory | unique ptr
void swap(unique_ptr& other)noexcept; | (C++11以上) | |
*this
の管理対象オブジェクトおよび紐付けられているデリータを、別の unique_ptr オブジェクト other
と入れ替えます。
[編集]引数
other | - | 管理対象オブジェクトとデリータを入れ替える別の unique_ptr オブジェクト |
[編集]戻り値
(なし)
[編集]例
Run this code
#include <iostream>#include <memory> struct Foo { Foo(int _val): val(_val){std::cout<<"Foo...\n";} ~Foo(){std::cout<<"~Foo...\n";}int val;}; int main(){std::unique_ptr<Foo> up1(new Foo(1));std::unique_ptr<Foo> up2(new Foo(2)); up1.swap(up2); std::cout<<"up1->val:"<< up1->val <<std::endl;std::cout<<"up2->val:"<< up2->val <<std::endl;}
出力:
Foo... Foo... up1->val:2 up2->val:1 ~Foo... ~Foo...