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++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 2315 C++11 weak_ptr に対してムーブセマンティクスが有効になっていなかった 有効化

関連項目

新しい weak_ptr を作成する
(public member function)
管理対象オブジェクトを交換する
(public member function)