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 <iostream>
	#include <cfenv>

	#pragma	STDC FENV_ACCESS ON

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

http://cppreference.com		  2022.07.31		 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.0>

home | help