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++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2315 | C++11 |
weak_ptr
に対してムーブセマンティクスが有効になっていなかった
|
有効化 |
関連項目
新しい
weak_ptr
を作成する
(public member function) |
|
|
管理対象オブジェクトを交換する
(public member function) |