std::experimental::any::operator=
From cppreference.com
< cpp | experimental | any
| any& operator=( const any& rhs ); |
(1) | (Library Fundamentals TS) |
| any& operator=( any&& rhs ) noexcept; |
(2) | (Library Fundamentals TS) |
| template< typename ValueType > any& operator=( ValueType&& rhs ); |
(3) | (Library Fundamentals TS) |
格納されている値に内容を代入します。
1) rhs の状態をコピーして代入します。あたかも any(rhs).swap(*this) のかのように動作します。
2) rhs の状態を移動して代入します。あたかも any(std::move(rhs)).swap(*this) のかのように動作します。代入後、rhs は有効ですが未指定の状態になります。
3) rhs の型と値を代入します。あたかも any(std::forward<ValueType>(rhs)).swap(*this) のかのように動作します。std::is_copy_constructible<std::decay_t<ValueType>>::value が false の場合、プログラムは ill-formed (不正な形式) になります。このオーバーロードは、std::decay_t<ValueType> が any と同じ型でない場合にのみ、オーバーロード解決に参加します。
目次 |
[編集] テンプレートパラメータ
| ValueType | - | 格納される値の型 |
| 型要件 | ||
-std::decay_t<ValueType>はCopyConstructibleの要件を満たす必要があります。 | ||
[編集] パラメータ
| rhs | - | 代入する格納値を持つオブジェクト |
[編集] 戻り値
*this
[編集] 例外
1,3) bad_alloc または格納されている型のコンストラクタによってスローされる例外をスローします。例外がスローされた場合、効果はありません (強力な例外保証)。
[編集] 関連項目
any オブジェクトを構築する(public member function) |