Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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_excep-
       tion

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 ob-
       tained 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 <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
	  std::get(std::variant) reads the value of the	variant	given the  in-
       dex or the type
	  (C++17)		 (if the type is unique), throws on error
				 (function template)
	  visit			 calls the provided functor with the arguments
       held by one or
	  (C++17)		 more variants
				 (function template)

http://cppreference.com		  2022.07.31	    std::bad_variant_access(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::bad_variant_access&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help