Files
cppdraft_translate/cppdraft/cfenv/syn.md
2025-10-25 03:02:53 +03:00

38 lines
2.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[cfenv.syn]
# 29 Numerics library [[numerics]](./#numerics)
## 29.3 The floating-point environment [[cfenv]](cfenv#syn)
### 29.3.1 Header <cfenv> synopsis [cfenv.syn]
[🔗](#header:%3ccfenv%3e)
#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 below*namespace 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](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L138)
The contents and meaning of the header [<cfenv>](#header:%3ccfenv%3e "29.3.1Header <cfenv> synopsis[cfenv.syn]") are a subset of the C standard library header [<fenv.h>](support.c.headers.general#header:%3cfenv.h%3e "17.15.1General[support.c.headers.general]") and
only the declarations shown in the synopsis above are present[.](#1.sentence-1)
[*Note [1](#note-1)*:
This document does not require an implementation to support theFENV_ACCESS pragma;
it is implementation-defined ([[cpp.pragma]](cpp.pragma "15.10Pragma directive"))
whether the pragma is supported[.](#1.sentence-2)
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[.](#1.sentence-3)
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[.](#1.sentence-4)
— *end note*]
See also: ISO/IEC 9899:2024, 7.6