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 в данный момент заданный тип
(шаблон функции)
читает значение варианта по заданному индексу или типу (если тип уникален), генерирует исключение при ошибке
(шаблон функции)