std::holds_alternative (3) - Linux Manuals

std::holds_alternative: std::holds_alternative


std::holds_alternative - std::holds_alternative


Defined in header <variant>
template <class T, class... Types> (since C++17)
constexpr bool holds_alternative(const std::variant<Types...>& v) noexcept;

Checks if the variant v holds the alternative T. The call is ill-formed if T does not appear exactly once in Types...


v - variant to examine

Return value

true if the variant currently holds the alternative T, false otherwise.


// Run this code

  #include <variant>
  #include <string>
  #include <iostream>
  int main()
      std::variant<int, std::string> v = "abc";
      std::cout << std::boolalpha
                << "variant holds int? "
                << std::holds_alternative<int>(v) << '\n'
                << "variant holds string? "
                << std::holds_alternative<std::string>(v) << '\n';


  variant holds int? false
  variant holds string? true

See also

                       returns the zero-based index of the alternative held by the variant
index (public member function)

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)