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 (公开成员函数) |
|
| 交换被管理对象 (公开成员函数) |