- Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::bad_variant_access(3) | C++ Standard Libary | std::bad_variant_access(3) | 
NAME¶
std::bad_variant_access - std::bad_variant_access
Synopsis¶
 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:
  
   * std::get(std::variant) called with an index or type that does not match the
  
   currently active alternative.
  
   * std::visit called to visit a variant that is valueless_by_exception.
Member functions¶
 constructor constructs a new bad_variant_access object
  
   (public member function)
  
   operator= replaces the bad_variant_access object
  
   (public member function)
  
   what returns the explanatory string
  
   (public member function)
std::bad_variant_access::bad_variant_access
  
   bad_variant_access() noexcept; (1) (since C++17)
  
   bad_variant_access( const bad_variant_access& other ) noexcept;
    (2) (since C++17)
  
   Constructs a new bad_variant_access object with an implementation-defined
  
   null-terminated byte string which is accessible through what().
  
   1) Default constructor.
  
   2) Copy constructor. If *this and other both have dynamic type
  
   std::bad_variant_access then std::strcmp(what(), other.what()) == 0.
Parameters¶
other - another exception object to copy
std::bad_variant_access::operator=
  
   bad_variant_access& operator=( const bad_variant_access& other )
    (since C++17)
  
   noexcept;
  
   Assigns the contents with those of other. If *this and other both have
    dynamic type
  
   std::bad_variant_access then std::strcmp(what(), other.what()) == 0 after
  
   assignment.
Parameters¶
other - another exception object to assign with
Return value¶
*this
std::bad_variant_access::what
  
   virtual const char* what() const noexcept; (since C++17)
  
   Returns the explanatory string.
Parameters¶
(none)
Return value¶
 Pointer to a null-terminated string with explanatory information.
    The string is
  
   suitable for conversion and display as a std::wstring. The pointer is
    guaranteed to
  
   be valid at least until the exception object from which it is obtained is
    destroyed,
  
   or until a non-const member function (e.g. copy assignment operator) on the
  
   exception object is called.
Notes¶
Implementations are allowed but not required to override what().
Inherited from std::exception
Member functions¶
 destructor destroys the exception object
  
   [virtual] (virtual public member function of std::exception)
  
   what returns an explanatory string
  
   [virtual] (virtual public member function of
  std::exception)
Example¶
// Run this code
  
   #include <iostream>
  
   #include <variant>
  
   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¶
 get(std::variant) reads the value of the variant given the index
    or the type (if the
  
   (C++17) type is unique), throws on error
  
   (function template)
  
   visit calls the provided functor with the arguments held by one or more
  
   (C++17) variants
  
   (function template)
| 2024.06.10 | http://cppreference.com |