Namespaces
Variants
Views
Actions

std::bad_variant_access

From cppreference.com
< cpp‎ | utility‎ | variant
Revision as of 12:46, 7 July 2016 by Cubbi (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
 
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

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

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]