命名空间
变体
操作

std::weak_ptr<T>::operator=

来自 cppreference.cn
< cpp‎ | memory‎ | weak ptr
 
 
内存管理库
(仅作说明*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(直到 C++20*)
(直到 C++20*)
显式生命周期管理
 
 
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) [编辑]