std::experimental::propagate_const<T>::operator=
From cppreference.com
< cpp | experimental | propagate const
| constexpr propagate_const& operator=( propagate_const&& p ) = default; |
(1) | (Library Fundamentals TS v2) |
| template< class U > constexpr propagate_const& operator=( propagate_const<U>&& pu ); |
(2) | (Library Fundamentals TS v2) |
| template< class U > constexpr propagate_const& operator=( U&& u ); |
(3) | (Library Fundamentals TS v2) |
| propagate_const& operator=( const propagate_const& ) = delete; |
(4) | (Library Fundamentals TS v2) |
t_を、ラップされたポインタライクなオブジェクトであるプライベートメンバ変数とします。
1) 明示的にデフォルト化されたムーブ代入演算子。 p.t_ から this->t_ へムーブ代入を行います。
std::move(pu.t_) を this->t_ に代入します。
このオーバーロードは、
このオーバーロードは、
U が T に暗黙的に変換可能である場合にのみ、オーバーロード解決に参加します。std::forward<U>(u) を this->t_ に代入します。
このオーバーロードは、
このオーバーロードは、
U が T に暗黙的に変換可能であり、かつ std::decay_t<U> が propagate_const の特殊化でない場合にのみ、オーバーロード解決に参加します。4) コピー代入演算子は明示的に削除されています。
propagate_const はコピー不可能です。[編集] パラメータ
| p | - | ムーブ元の別の propagate_const オブジェクト |
| pu | - | ムーブ元の、特殊化が異なる別の propagate_const オブジェクト |
| u | - | 格納されたポインタに代入する別のオブジェクト |
[編集] 戻り値
*this.