|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
unique_ptr::swap | ||||
| Observers | ||||
| Non-member functions | ||||
(C++14)(C++20) | ||||
(until C++20)(C++20) | ||||
(C++20) | ||||
| Helper classes | ||||
void swap( unique_ptr& other)noexcept; | (since C++11) | |
Swaps the managed objects and associated deleters of*this and anotherunique_ptr objectother.
| other | - | anotherunique_ptr object to swap the managed object and the deleter with |
(none)
#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<<'\n';std::cout<<"up2->val:"<< up2->val<<'\n';}
Output:
Foo...Foo...up1->val:2up2->val:1~Foo...~Foo...