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

FreeBSD Manual Pages

  
 
  

home | help
std::invalid_argument(3)      C++ Standard Libary     std::invalid_argument(3)

NAME
       std::invalid_argument - std::invalid_argument

Synopsis
	  Defined in header <stdexcept>
	  class	invalid_argument;

	  Defines  a  type of object to	be thrown as exception.	It reports er-
       rors that arise
	  because an argument value has	not been accepted.

	  This exception is thrown by std::bitset::bitset, and	the  std::stoi
       and std::stof
	  families of functions.

	  std-invalid argument-inheritance.svg

					  Inheritance diagram

Member functions
	  constructor	 constructs  a	new  invalid_argument  object with the
       given message
			(public	member function)
	  operator=	replaces the invalid_argument object
			(public	member function)
	  what		returns	the explanatory	string
			(public	member function)

       std::invalid_argument::invalid_argument

	  invalid_argument( const std::string& what_arg	);     (1)
	  invalid_argument( const  char*  what_arg  );		   (2)	(since
       C++11)
	  invalid_argument(	 const	    invalid_argument&	  other	    );
       (until C++11)
	  invalid_argument(   const   invalid_argument&	  other	   )	   (3)
       (since C++11)
	  noexcept;

	  1-2)	Constructs  the	 exception object with what_arg	as explanatory
       string that can be
	  accessed through what().
	  3) Copy constructor.
	  If *this and other both have dynamic type std::invalid_argument then
	  std::strcmp(what(), other.what()) == 0.
	  (since C++11)

Parameters
	  what_arg - explanatory string
	  other	   - another exception object to copy

Exceptions
	  1-2) May throw std::bad_alloc

Notes
	  Because copying std::invalid_argument	is not permitted to throw  ex-
       ceptions, this
	  message  is  typically  stored  internally as	a separately-allocated
       reference-counted
	  string.  This	 is  also  why	there	is   no	  constructor	taking
       std::string&&: it would have
	  to copy the content anyway.

       std::invalid_argument::operator=

	  invalid_argument&   operator=(   const  invalid_argument&  other  );
       (until C++11)
	  invalid_argument&  operator=(	 const	 invalid_argument&   other   )
       (since C++11)
	  noexcept;

	  Assigns the contents with those of other.
	  If *this and other both have dynamic type std::invalid_argument then
	  std::strcmp(what(), other.what()) == 0 after assignment.
	  (since C++11)

Parameters
	  other	- another exception object to assign with

Return value
	  *this

       std::invalid_argument::what

	  virtual const	char* what() const throw();   (until C++11)
	  virtual const	char* what() const noexcept;  (since C++11)

	  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::logic_error

       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)

Notes
	  The purpose of this exception	type is	similar	to the error condition
	  std::errc::invalid_argument (thrown in std::system_error from	member
       functions of
	  std::thread) and the related errno constant EINVAL.

Example
       // Run this code

	#include <bitset>
	#include <iostream>
	#include <stdexcept>
	#include <string>

	int main()
	{
	    try	{
		std::bitset<4>{"012"}; // Throws: only '0' or '1' expected
	    } catch (std::invalid_argument const& ex) {
		std::cout << "#1: " << ex.what() << '\n';
	    }

	    try	{
		[[maybe_unused]] int f = std::stoi("ABBA"); // Throws: no con-
       version
	    } catch (std::invalid_argument const& ex) {
		std::cout << "#2: " << ex.what() << '\n';
	    }

	    try	{
		[[maybe_unused]] float f = std::stof("(3.14)");	// Throws:  no
       conversion
	    } catch (std::invalid_argument const& ex) {
		std::cout << "#3: " << ex.what() << '\n';
	    }
	}

Possible output:
	#1: bitset string ctor has invalid argument
	#2: stoi: no conversion
	#3: stof: no conversion

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

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

home | help