std::fetestexcept(3)
π NAME π
okay bestie, we're in std::fetestexcept(3) from the C++ Standard Libary, and the name is literally:
std::fetestexcept β std::fetestexcept
yes that's the whole name section. iconic, no notes. π
β¨ Synopsis β¨
Defined in header <cfenv>:
int fetestexcept( int excepts ); (since C++11)
std::fetestexcept determines which of the specified subset of the floating point exceptions are currently set. The argument excepts is a bitwise OR of the floating point exception macros. slay.
πΈ Parameters πΈ
exceptsβ bitmask listing the exception flags to test
π¦ Return value π¦
Bitwise OR of the floating-point exception macros that are both included in excepts and correspond to floating-point exceptions currently set. periodt.
π₯ Example π₯
// Run this code
#include <cfenv>
#include <cmath>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
volatile double zero = 0.0; // volatile not needed where FENV_ACCESS is
supported
volatile double one = 1.0; // volatile not needed where FENV_ACCESS is
supported
int main()
{
std::feclearexcept(FE_ALL_EXCEPT);
std::cout << "1.0/0.0 = " << 1.0 / zero << '\n';
if (std::fetestexcept(FE_DIVBYZERO))
std::cout << "division by zero reported\n";
else
std::cout << "division by zero not reported\n";
std::feclearexcept(FE_ALL_EXCEPT);
std::cout << "1.0/10 = " << one / 10 << '\n';
if (std::fetestexcept(FE_INEXACT))
std::cout << "inexact result reported\n";
else
std::cout << "inexact result not reported\n";
std::feclearexcept(FE_ALL_EXCEPT);
std::cout << "sqrt(-1) = " << std::sqrt(-1) << '\n';
if (std::fetestexcept(FE_INVALID))
std::cout << "invalid result reported\n";
else
std::cout << "invalid result not reported\n";
}
Possible output:
1.0/0.0 = inf
division by zero reported
1.0/10 = 0.1
inexact result reported
sqrt(-1) = -nan
invalid result reported
π See also π
feclearexceptβ clears the specified floating-point status flags(C++11)(function)- C documentation for
fetestexcept
catch you later bestie π«Ά β this page is std::fetestexcept(3), sourced from http://cppreference.com, version/date 2024.06.10 π
β¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms