Files
2025-10-25 03:02:53 +03:00

2.2 KiB

[cfenv.syn]

29 Numerics library [numerics]

29.3 The floating-point environment [cfenv]

29.3.1 Header synopsis [cfenv.syn]

🔗

#define FE_ALL_EXCEPT see below#define FE_DIVBYZERO see below // optional#define FE_INEXACT see below // optional#define FE_INVALID see below // optional#define FE_OVERFLOW see below // optional#define FE_UNDERFLOW see below // optional#define FE_DOWNWARD see below // optional#define FE_TONEAREST see below // optional#define FE_TOWARDZERO see below // optional#define FE_UPWARD see below // optional#define FE_DFL_ENV see belownamespace std {// typesusing fenv_t = object type; using fexcept_t = object type; // functionsint 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(); 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);}

1

#

The contents and meaning of the header are a subset of the C standard library header <fenv.h> and only the declarations shown in the synopsis above are present.

[Note 1:

This document does not require an implementation to support theFENV_ACCESS pragma; it is implementation-defined ([cpp.pragma]) whether the pragma is supported.

As a consequence, it is implementation-defined whether these functions can be used to test floating-point status flags, set floating-point control modes, or run under non-default mode settings.

If the pragma is used to enable control over the floating-point environment, this document does not specify the effect on floating-point evaluation in constant expressions.

— end note]

See also: ISO/IEC 9899:2024, 7.6