<variant> 関数

get

オブジェクトのバリアントを取得します。

template <size_t I, class... Types>
    constexpr variant_alternative_t<I, variant<Types...>>& get(variant<Types...>&);
template <size_t I, class... Types>
    constexpr variant_alternative_t<I, variant<Types...>>&& get(variant<Types...>&&);
template <size_t I, class... Types>
    constexpr const variant_alternative_t<I, variant<Types...>>& get(const variant<Types...>&);
template <size_t I, class... Types>
    constexpr const variant_alternative_t<I, variant<Types...>>&& get(const variant<Types...>&&);
template <class T, class... Types>
    constexpr T& get(variant<Types...>&);
template <class T, class... Types>
    constexpr T&& get(variant<Types...>&&);
template <class T, class... Types>
    constexpr const T& get(const variant<Types...>&);
template <class T, class... Types>
    constexpr const T&& get(const variant<Types...>&&);

get_if

オブジェクトが存在する場合は、そのバリアントを取得します。

template <size_t I, class... Types>
    constexpr add_pointer_t<variant_alternative_t<I, variant<Types...>>> get_if(variant<Types...>*) noexcept;
template <size_t I, class... Types>
    constexpr add_pointer_t<const variant_alternative_t<I, variant<Types...>>> get_if(const variant<Types...>*) noexcept;
template <class T, class... Types>
    constexpr add_pointer_t<T> get_if(variant<Types...>*) noexcept;
template <class T, class... Types>
    constexpr add_pointer_t<const T> get_if(const variant<Types...>*) noexcept;

holds_alternative

バリアントが存在する場合は、true を返します。

template <class T, class... Types>
    constexpr bool holds_alternative(const variant<Types...>&) noexcept;

スワップ

template <class... Types>
    void swap(variant<Types...>&, variant<Types...>&) noexcept(see below);

variant_npos

namespace std {
    inline constexpr size_t variant_npos = -1;
}

visit

次の variant に移動します。

template <class Visitor, class... Variants>
    constexpr see below
        visit(Visitor&&, Variants&&...);