std::bad_variant_access (3) - Linux Manuals

std::bad_variant_access: std::bad_variant_access


std::bad_variant_access - std::bad_variant_access


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.



Inherited from std::exception

Member functions

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

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


// Run this code

  #include <variant>
  #include <iostream>

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

Possible output:


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)

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