Namespaces
Variants

std::variant<Types...>:: index

From cppreference.net
Utilities library
constexpr std:: size_t index ( ) const noexcept ;
(C++17以降)

現在、バリアントが保持している代替オプションのゼロベースのインデックスを返します。

バリアントが valueless_by_exception の場合、 variant_npos を返します。

#include <iostream>
#include <string>
#include <variant>
int main()
{
    std::variant<int, std::string> v = "abc";
    std::cout << "v.index = " << v.index() << '\n';
    v = {};
    std::cout << "v.index = " << v.index() << '\n';
}

出力:

v.index = 1
v.index = 0

関連項目

variant が指定された型を現在保持しているかどうかをチェックする
(関数テンプレート)
インデックスまたは型(型が一意の場合)を指定してvariantの値を読み取る。エラー時には例外をスローする
(関数テンプレート)