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

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

NAME

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

Synopsis


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.

Example


// 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';
  }

Output:


  v.index = 1
  v.index = 0

See also


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


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)
(C++17)