std::weak_ptr<T>::operator=
来自 cppreference.com
weak_ptr& operator=( const weak_ptr& r ) noexcept; |
(1) | (自 C++11 起) |
template< class Y > weak_ptr& operator=( const weak_ptr<Y>& r ) noexcept; |
(2) | (自 C++11 起) |
template< class Y > weak_ptr& operator=( const shared_ptr<Y>& r ) noexcept; |
(3) | (自 C++11 起) |
weak_ptr& operator=( weak_ptr&& r ) noexcept; |
(4) | (自 C++11 起) |
template< class Y > weak_ptr& operator=( weak_ptr<Y>&& r ) noexcept; |
(5) | (自 C++11 起) |
用 r 管理的对象替换管理的对象。该对象与 r 共享。如果 r 不管理任何对象,*this 也不管理任何对象。
1-3) 等同于 std::weak_ptr<T>(r).swap(*this).
4,5) 等同于 std::weak_ptr<T>(std::move(r)).swap(*this).
内容 |
[编辑] 参数
r | - | 要与之共享对象的智能指针 |
[编辑] 返回值
*this
[编辑] 说明
实现可以满足要求,无需创建临时 weak_ptr
对象。
[编辑] 缺陷报告
以下行为更改缺陷报告已追溯应用于以前发布的 C++ 标准。
DR | 应用于 | 已发布的行为 | 正确行为 |
---|---|---|---|
LWG 2315 | C++11 | 移动语义未为 weak_ptr 启用 |
启用 |
[编辑] 另请参阅
创建一个新的 weak_ptr (公有成员函数) | |
交换托管对象 (公有成员函数) |