std::variant<Types...>::index (3) - Linux Manuals

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


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


constexpr std::size_t index() const noexcept; (since C++17)

Returns the zero-based index of the alternative that is currently held by the variant.
If the variant is valueless_by_exception, returns variant_npos.


// Run this code

  #include <variant>
  #include <string>
  #include <iostream>
  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

See also

holds_alternative checks if a variant currently holds a given type
                       (function template)

std::get(std::variant) reads the value of the variant given the index or the type (if the type is unique), throws on error
                       (function template)