Standard library header <cfenv> (C++11)
From cppreference.net
Этот заголовок изначально находился в стандартной библиотеке C как <fenv.h> .
Этот заголовок является частью библиотеки окружения для чисел с плавающей запятой .
Содержание |
Типы
|
fenv_t
(C++11)
|
тип, представляющий всю среду с плавающей запятой
(typedef) |
|
fexcept_t
(C++11)
|
тип, представляющий все флаги состояния с плавающей запятой в совокупности
(typedef) |
Функции
|
(C++11)
|
очищает указанные флаги состояния чисел с плавающей запятой
(функция) |
|
(C++11)
|
определяет, какие из указанных флагов состояния чисел с плавающей запятой установлены
(функция) |
|
(C++11)
|
возбуждает указанные исключения чисел с плавающей запятой
(функция) |
|
(C++11)
(C++11)
|
копирует состояние указанных флагов состояния чисел с плавающей запятой из или в окружение чисел с плавающей запятой
(функция) |
|
(C++11)
(C++11)
|
получает или устанавливает направление округления
(функция) |
|
(C++11)
|
сохраняет или восстанавливает текущее окружение чисел с плавающей запятой
(функция) |
|
(C++11)
|
сохраняет окружение, очищает все флаги состояния и игнорирует все будущие ошибки
(функция) |
|
(C++11)
|
восстанавливает окружение чисел с плавающей запятой и возбуждает ранее возбужденные исключения
(функция) |
Макросы
|
исключения с плавающей запятой
(макроконстанта) |
|
|
направление округления чисел с плавающей запятой
(макроконстанта) |
|
|
(C++11)
|
окружение с плавающей запятой по умолчанию
(макроконстанта) |
Синопсис
#define FE_ALL_EXCEPT /* см. описание */ #define FE_DIVBYZERO /* см. описание */ // optional #define FE_INEXACT /* см. описание */ // optional #define FE_INVALID /* см. описание */ // optional #define FE_OVERFLOW /* см. описание */ // optional #define FE_UNDERFLOW /* см. описание */ // optional #define FE_DOWNWARD /* см. описание */ // optional #define FE_TONEAREST /* см. описание */ // optional #define FE_TOWARDZERO /* см. описание */ // optional #define FE_UPWARD /* см. описание */ // optional #define FE_DFL_ENV /* см. описание */ namespace std { // типы using fenv_t = /* тип объекта */; using fexcept_t = /* тип объекта */; // функции 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); }
Отчёты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 3905 | C++11 |
std::fexcept_t
должен быть целочисленным типом
|
это объектный тип |