- memory[meta header]
- std[meta namespace]
- function template[meta id-type]
- cpp11[meta cpp]
namespace std {
template <class T>
void swap(weak_ptr<T>& a, weak_ptr<T>& b) noexcept;
}2つのweak_ptrオブジェクトを入れ替える。
a.swap(b)
なし
投げない
#include <iostream>
#include <memory>
int main()
{
std::shared_ptr<int> sp1(new int(1));
std::weak_ptr<int> wp1 = sp1;
std::shared_ptr<int> sp2(new int(2));
std::weak_ptr<int> wp2 = sp2;
// wp1とwp2を入れ替える
std::swap(wp1, wp2);
if (std::shared_ptr<int> r = wp1.lock()) {
std::cout << *r << std::endl;
}
if (std::shared_ptr<int> r = wp2.lock()) {
std::cout << *r << std::endl;
}
}- std::swap[color ff0000]
- lock()[link lock.md]
2
1
- C++11
- GCC, C++11 mode: 4.3.6
- Clang libc++, C++11 mode: 3.0
- ICC: ?
- Visual C++: ?