variant – třída
Každá instance varianty v libovolném okamžiku buď obsahuje hodnotu jednoho z jeho alternativních typů, nebo neobsahuje žádnou hodnotu.
Syntaxe
template <class... Types>
class variant
Členové
Konstruktory
Jméno | popis |
---|---|
Varianta | Vytvoří objekt typu variant . |
Funkce
Jméno | popis |
---|---|
emplace | Vytvoří novou obsaženou hodnotu. |
Index | Vrátí index obsažené hodnoty. |
Swap | |
valueless_by_exception | Vrátí false , pokud varianta obsahuje hodnotu. |
Operátory
Jméno | popis |
---|---|
operator= | Nahradí variantu kopií jiné varianty. |
emplace
Vytvoří novou obsaženou hodnotu.
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
Vrátí index obsažené hodnoty.
constexpr size_t index() const noexcept;
Varianta
Vytvoří objekt typu variant
. Obsahuje také 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
Třída alokátoru, která se má použít s tímto objektem.
operator=
Nahradí variantu kopií jiné varianty.
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
Vrátí false
, pokud varianta obsahuje hodnotu.
constexpr bool valueless_by_exception() const noexcept;
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro