std::holds_alternative(3)

NAME
std::holds_alternative - std::holds_alternative

Synopsis
   Defined in header <variant>
   template< class T, class... Types >
   constexpr bool holds_alternative( const std::variant<Types...>& v ) (since C++17)
   noexcept;
   Checks if the variant v holds the alternative T. The call is ill-formed if T does
   not appear exactly once in Types...

Parameters
   v - variant to examine

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

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

Output:
 variant holds int? false
 variant holds string? true

See also
                        returns the zero-based index of the alternative held by the
   index variant
                        (public member function)
   std::get(std::variant) reads the value of the variant given the index or the type
   (C++17) (if the type is unique), throws on error
                        (function template)