function template
<memory>
std::swap (shared_ptr)
template <class T> void swap (shared_ptr<T>& x, shared_ptr<T>& y) noexcept;
Exchange content of shared_ptr objects
Exchanges the contents of x with those of y, transferring ownership of any managed object between them without destroying either.
This non-member function effectively callsx.swap(y).
This is a specialization of the generic algorithm swap.
参数
- x,y
- Two shared_ptr objects of the same type (instantiated with the same template parameterT).
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
// shared_ptr swap specialization
#include <iostream>
#include <memory>
int main () {
std::shared_ptr<int> foo (new int(10));
std::shared_ptr<int> bar (new int(20));
swap(foo,bar);
std::cout << "foo: " << *foo << '\n';
std::cout << "bar: " << *bar << '\n';
return 0;
}
|
输出