variant, klasa

Każde wystąpienie wariantu w danym momencie przechowuje wartość jednego z jego typów alternatywnych lub nie zawiera żadnej wartości.

Składnia

template <class... Types>
    class variant

Członkowie

Konstruktory

Nazwa/nazwisko opis
Wariant Tworzy obiekt typu variant.

Funkcje

Nazwa/nazwisko opis
miejsce Tworzy nową zawartą wartość.
Indeks Zwraca indeks zawartej wartości.
Wymiany
valueless_by_exception Zwraca wartość false , jeśli wariant zawiera wartość.

Operatory

Nazwa/nazwisko opis
operator = Zastępuje wariant kopią innego wariantu.

miejsce

Tworzy nową zawartą wartość.

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

Zwraca indeks zawartej wartości.

constexpr size_t index() const noexcept;

Wariant

Tworzy obiekt typu variant. Zawiera również destruktor.

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

Parametry

Al
Klasa alokatora do wykorzystania z tym obiektem.

operator =

Zastępuje wariant kopią innego wariantu.

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

swap

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

valueless_by_exception

Zwraca wartość false , jeśli wariant zawiera wartość.

constexpr bool valueless_by_exception() const noexcept;