| Common mathematical functions | |||||||||||||||||||||||||||||||
| Mathematical special functions(C++17) | |||||||||||||||||||||||||||||||
| Mathematical constants(C++20) | |||||||||||||||||||||||||||||||
| Basic linear algebra algorithms(C++26) | |||||||||||||||||||||||||||||||
| Data-parallel types (SIMD)(C++26) | |||||||||||||||||||||||||||||||
| Floating-point environment(C++11) | |||||||||||||||||||||||||||||||
| Complex numbers | |||||||||||||||||||||||||||||||
Numeric array (valarray) | |||||||||||||||||||||||||||||||
| Pseudo-random number generation | |||||||||||||||||||||||||||||||
| Bit manipulation(C++20) | |||||||||||||||||||||||||||||||
| Saturation arithmetic(C++26) | |||||||||||||||||||||||||||||||
| Factor operations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
| Interpolations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
| Generic numeric operations | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| C-style checked integer arithmetic | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| Functions | ||||
(C++11) | ||||
fetestexcept (C++11) | ||||
(C++11) | ||||
(C++11)(C++11) | ||||
(C++11)(C++11) | ||||
(C++11)(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Macro constants | ||||
(C++11)(C++11)(C++11)(C++11)(C++11)(C++11) | ||||
(C++11)(C++11)(C++11)(C++11) | ||||
(C++11) |
Defined in header <cfenv> | ||
int fetestexcept(int excepts); | (since C++11) | |
Determines which of the specified subset of the floating point exceptions are currently set. The argumentexcepts is a bitwise OR of thefloating point exception macros.
Contents |
| excepts | - | bitmask listing the exception flags to test |
Bitwise OR of the floating-point exception macros that are both included inexcepts and correspond to floating-point exceptions currently set.
#include <cfenv>#include <cmath>#include <iostream> // #pragma STDC FENV_ACCESS ON volatiledouble zero=0.0;// volatile not needed where FENV_ACCESS is supportedvolatiledouble 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";elsestd::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";elsestd::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";elsestd::cout<<"invalid result not reported\n";}
Possible output:
1.0/0.0 = infdivision by zero reported1.0/10 = 0.1inexact result reportedsqrt(-1) = -naninvalid result reported
(C++11) | clears the specified floating-point status flags (function)[edit] |
C documentation forfetestexcept | |