std::weak_ptr<T>::operator=
来自 cppreference.cn
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++ 标准。
缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
---|---|---|---|
LWG 2315 | C++11 | 未为 weak_ptr 启用移动语义 |
已启用 |
[编辑] 参见
创建新的 weak_ptr (public member function) | |
交换管理对象 (public member function) |