variant 類別
在任何指定時間的任何 Variant 實例,要麼保留其其中一個替代類型的值,或不保留任何值。
語法
template <class... Types>
class variant
成員
建構函式
名稱 | 描述 |
---|---|
變體 | 建構類型 variant 的物件。 |
函式
名稱 | 描述 |
---|---|
emplace | 建立新的自主值。 |
index | 傳回自主值的索引。 |
swap | |
valueless_by_exception | 如果 Variant 保留值,則傳 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&&...);
index
傳回自主值的索引。
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();
參數
鋁
搭配這個物件使用的配置器類別。
operator=
將變體取代為另一個變體的複本。
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
如果 Variant 保留值,則傳 false
回 。
constexpr bool valueless_by_exception() const noexcept;