Standard library header (C++11) (original) (raw)
This header was originally in the C standard library as <fenv.h>.
This header is part of the floating-point environment library.
[edit] Types
| | the type representing the entire floating-point environment (typedef) [edit] | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | the type representing all floating-point status flags collectively (typedef) [edit] |
[edit] Functions
| feclearexcept(C++11) | clears the specified floating-point status flags (function) [edit] |
|---|---|
| fetestexcept(C++11) | determines which of the specified floating-point status flags are set (function) [edit] |
| feraiseexcept(C++11) | raises the specified floating-point exceptions (function) [edit] |
| fegetexceptflagfesetexceptflag(C++11)(C++11) | copies the state of the specified floating-point status flags from or to the floating-point environment (function) [edit] |
| fegetroundfesetround(C++11)(C++11) | gets or sets rounding direction (function) [edit] |
| fegetenvfesetenv(C++11) | saves or restores the current floating-point environment (function) [edit] |
| feholdexcept(C++11) | saves the environment, clears all status flags and ignores all future errors (function) [edit] |
| feupdateenv(C++11) | restores the floating-point environment and raises the previously raised exceptions (function) [edit] |
[edit] Macros
[edit] Synopsis
#define FE_ALL_EXCEPT /* see description / #define FE_DIVBYZERO / see description / // optional #define FE_INEXACT / see description / // optional #define FE_INVALID / see description / // optional #define FE_OVERFLOW / see description / // optional #define FE_UNDERFLOW / see description / // optional #define FE_DOWNWARD / see description / // optional #define FE_TONEAREST / see description / // optional #define FE_TOWARDZERO / see description / // optional #define FE_UPWARD / see description / // optional #define FE_DFL_ENV / see description / namespace std { // types using fenv_t = / object type /; using fexcept_t = / object type /; // functions int feclearexcept(int except); int fegetexceptflag(fexcept_t pflag, int except); int feraiseexcept(int except); int fesetexceptflag(const fexcept_t* pflag, int except); int fetestexcept(int except); int fegetround(void); int fesetround(int mode); int fegetenv(fenv_t* penv); int feholdexcept(fenv_t* penv); int fesetenv(const fenv_t* penv); int feupdateenv(const fenv_t* penv); }
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3905 | C++11 | std::fexcept_t must be an integer type | it is an object type |