variant クラス
任意の時点における variant のインスタンスは、その代替型のいずれかの値を保持するか、値を保持しません。
構文
template <class... Types>
class variant
メンバー
コンストラクター
名前 | 説明 |
---|---|
variant | variant 型のオブジェクトを構築します。 |
関数
名前 | 説明 |
---|---|
emplace | 格納されている新しい値を作成します。 |
インデックス | 格納されている値のインデックスを返します。 |
スワップ | |
valueless_by_exception | バリアントが値を保持している場合は false を返します。 |
演算子
名前 | 説明 |
---|---|
operator= | バリアントを別のバリアントのコピーで置き換えます。 |
emplace
格納されている新しい値を作成します。
template <class T, class... Args>
T& emplace(Args&&...);
template <class T, class U, class... Args>
T& emplace(initializer_list<U>, Args&&...);
template <size_t I, class... Args>
variant_alternative_t<I, variant<Types...>>& emplace(Args&&...);
template <size_t I, class U, class... Args>
variant_alternative_t<I, variant<Types...>>& emplace(initializer_list<U>, Args&&...);
インデックス
格納されている値のインデックスを返します。
constexpr size_t index() const noexcept;
variant
variant
型のオブジェクトを構築します。 デストラクターも含まれています。
constexpr variant() noexcept(see below);
variant(const variant&);
variant(variant&&) noexcept(see below);
template <class T>
constexpr variant(T&&) noexcept(see below);
template <class T, class... Args>
constexpr explicit variant(in_place_type_t<T>, Args&&...);
template <class T, class U, class... Args>
constexpr explicit variant(in_place_type_t<T>, initializer_list<U>, Args&&...);
template <size_t I, class... Args>
constexpr explicit variant(in_place_index_t<I>, Args&&...);
template <size_t I, class U, class... Args>
constexpr explicit variant(in_place_index_t<I>, initializer_list<U>, Args&&...);
template <class Alloc>
variant(allocator_arg_t, const Al&);
template <class Alloc>
variant(allocator_arg_t, const Al&, const variant&);
template <class Alloc>
variant(allocator_arg_t, const Al&, variant&&);
template <class Alloc, class T>
variant(allocator_arg_t, const Al&, T&&);
template <class Alloc, class T, class... Args>
variant(allocator_arg_t, const Al&, in_place_type_t<T>, Args&&...);
template <class Alloc, class T, class U, class... Args>
variant(allocator_arg_t, const Al&, in_place_type_t<T>, initializer_list<U>, Args&&...);
template <class Alloc, size_t I, class... Args>
variant(allocator_arg_t, const Al&, in_place_index_t<I>, Args&&...);
template <class Alloc, size_t I, class U, class... Args>
variant(allocator_arg_t, const Al&, in_place_index_t<I>, initializer_list<U>, Args&&...);
~variant();
パラメーター
Al
このオブジェクトに対して使用するアロケーター クラス。
operator=
バリアントを別のバリアントのコピーで置き換えます。
variant& operator=(const variant&);
variant& operator=(variant&&) noexcept(see below);
template <class T>
variant& operator=(T&&) noexcept(see below);
スワップ
void swap(variant&) noexcept(see below);
valueless_by_exception
バリアントが値を保持している場合は false
を返します。
constexpr bool valueless_by_exception() const noexcept;