Namespaces
Variants
Views
Actions

std::bad_variant_access

From cppreference.com
< 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:

Contents

[edit] Member functions

(constructor)
bad_variant_access()
(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]
destructs the exception object
(virtual public member function of std::exception) [edit]
[virtual]
returns an explanatory string
(virtual public member function of std::exception) [edit]

[edit] 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

[edit] See also

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