std::weak_ptr<T>:: operator=
From cppreference.net
C++
Memory management library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::weak_ptr
| Member functions | ||||
|
weak_ptr::operator=
|
||||
| Modifiers | ||||
| Observers | ||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++20)
|
||||
| Deduction guides (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
(公开成员函数) |
|
|
交换被管理的对象
(公开成员函数) |