std::weak_ptr<T>::operator=
来自cppreference.com
工具库
动态内存管理
|
std::weak_ptr
成员函数 | ||||
weak_ptr::operator=
|
||||
修改器 | ||||
观察器 | ||||
非成员函数 | ||||
辅助类 | ||||
(C++20)
|
||||
推导指引(C++17) |
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 (公开成员函数) |
|
交换被管理对象 (公开成员函数) |