W3cubDocs

/C++

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:

Member functions

(constructor)
bad_variant_access()
(public member function)

std::bad_variant_access ::bad_variant_access()

bad_variant_access();

Constructs a new instance of std::bad_variant_access.

Parameters

(none).

Exceptions

noexcept specification:
noexcept

Inherited from std::exception

Member functions

[virtual]
destructs 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

(C++17)
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)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/utility/variant/bad_variant_access