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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::feraiseexcept - std::feraiseexcept

Synopsis
	  Defined in header <cfenv>
	  int feraiseexcept( int excepts );  (since C++11)

	  Attempts to raise all	floating point exceptions listed in excepts (a
       bitwise OR of
	  the  floating	 point	exception macros). If one of the exceptions is
       FE_OVERFLOW or
	  FE_UNDERFLOW,	this function may additionally raise  FE_INEXACT.  The
       order in	which
	  the  exceptions  are	raised is unspecified, except that FE_OVERFLOW
       and FE_UNDERFLOW
	  are always raised before FE_INEXACT.

Parameters
	  excepts - bitmask listing the	exception flags	to raise

Return value
	  0 if all listed exceptions were raised, non-zero value otherwise.

Example
       // Run this code

	#include <cfenv>
	#include <iostream>

	// #pragma STDC	FENV_ACCESS ON

	int main()
	{
	    std::feclearexcept(FE_ALL_EXCEPT);
	    const int r	= std::feraiseexcept(FE_UNDERFLOW | FE_DIVBYZERO);
	    std::cout << "Raising divbyzero and	underflow simultaneously "
		      << (r ? "fails" :	"succeeds") << " and results in\n";

	    const int e	= std::fetestexcept(FE_ALL_EXCEPT);
	    if (e & FE_DIVBYZERO)
		std::cout << "division by zero\n";
	    if (e & FE_INEXACT)
		std::cout << "inexact\n";
	    if (e & FE_INVALID)
		std::cout << "invalid\n";
	    if (e & FE_UNDERFLOW)
		std::cout << "underflow\n";
	    if (e & FE_OVERFLOW)
		std::cout << "overflow\n";
	}

Output:
	Raising	divbyzero and underflow	simultaneously succeeds	and results in
	division by zero
	underflow

See also
	  feclearexcept	clears the specified floating-point status flags
	  (C++11)	(function)
	  fetestexcept	determines which of the	specified floating-point  sta-
       tus flags are set
	  (C++11)	(function)
	  C documentation for
	  feraiseexcept

http://cppreference.com		  2024.06.10		 std::feraiseexcept(3)

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

home | help