< cpp‎ | utility‎ | 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

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.



Inherited from std::exception

Member functions

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


#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

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