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;
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla