Condividi tramite


Classe variant

Qualsiasi istanza di variant in qualsiasi momento contiene un valore di uno dei relativi tipi alternativi oppure non contiene alcun valore.

Sintassi

template <class... Types>
    class variant

Membri

Costruttori

Nome Descrizione
variant Costruisce un oggetto di tipo variant.

Funzioni

Nome Descrizione
emplace Crea un nuovo valore contenuto.
index Restituisce l'indice di un valore contenuto.
swap
valueless_by_exception Restituisce false se la variante contiene un valore.

Operatori

Nome Descrizione
operator= Sostituisce la variante con una copia di un'altra variante.

emplace

Crea un nuovo valore contenuto.

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&&...);

index

Restituisce l'indice di un valore contenuto.

constexpr size_t index() const noexcept;

variante

Costruisce un oggetto di tipo variant. Include anche un distruttore.

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();

Parametri

Ale
Classe Allocator da usare con questo oggetto.

operator=

Sostituisce la variante con una copia di un'altra variante.

variant& operator=(const variant&);
variant& operator=(variant&&) noexcept(see below);
template <class T>
    variant& operator=(T&&) noexcept(see below);

scambio

void swap(variant&) noexcept(see below);

valueless_by_exception

Restituisce false se la variante contiene un valore.

constexpr bool valueless_by_exception() const noexcept;