std::bad_variant_access (3) - Linux Manuals

std::bad_variant_access: std::bad_variant_access

NAME

std::bad_variant_access - std::bad_variant_access

Synopsis


Defined in header <variant>
class bad_variant_access : public std::exception (since C++17)


std::bad_variant_access is the type of the exception thrown in the following situations:


* std::get(std::variant) called with an index or type that does not match the currently active alternative
* std::visit called to visit a variant that is valueless_by_exception

Member functions


              constructs the bad_variant_access object
constructor (public member function)


 std::bad_variant_access ::bad_variant_access()


bad_variant_access() noexcept;


Constructs a new instance of std::bad_variant_access.

Parameters


(none)


Inherited from std::exception

Member functions


destructor destroys the exception object
             (virtual public member function of std::exception)
[virtual]


what returns an explanatory string
             (virtual public member function of std::exception)
[virtual]

Example


// Run this code


  #include <variant>
  #include <iostream>


  int main()
  {
      std::variant<int, float> v;
      v = 12;
      try {
        std::get<float>(v);
      }
      catch(const std::bad_variant_access& e) {
          std::cout << e.what() << '\n';
      }
  }

Possible output:


  bad_variant_access

See also


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)


visit calls the provided functor with the arguments held by one or more variants
                       (function template)
(C++17)