Namespaces
Variants

std::weak_ptr<T>:: operator=

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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
(公开成员函数)
交换被管理的对象
(公开成员函数)