std::bad_variant_access

From cppreference.com
< cpplrm; | utilitylrm; | variant
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:

Member functions

(constructor)
constructs the bad_variant_access object
(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

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

Example

#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

reads the value of the variant given the index or the type (if the type is unique), throws on error
(function template)
(C++17)
calls the provided functor with the arguments held by one or more variants
(function template)