# 标准库头文件 <cfenv>

< cpp‎ | header

此头文件原作为 `<fenv.h>` 存在于 C 标准库。

此头文件是浮点环境库的一部分。

### 类型

fenv_t | 表示整个浮点环境的类型
fexcept_t | 汇集地表示所有浮点状态标志的类型

### 函数

feclearexcept (C++11) | 清除指定的浮点状态标志 (函数)
fetestexcept (C++11) | 确定设置了哪个指定的浮点状态标志 (函数)
feraiseexcept (C++11) | 引发指定的浮点异常 (函数)
fegetexceptflag fesetexceptflag (C++11)(C++11) | 从浮点环境（或向其中）复制指定的浮点状态标志 (函数)
fegetround fesetround (C++11)(C++11) | 获取或设置舍入方向 (函数)
fegetenv fesetenv (C++11) | 保存或恢复当前浮点环境 (函数)
feholdexcept (C++11) | 保存环境，清除所有状态标志，并忽略所有将来的错误 (函数)
feupdateenv (C++11) | 恢复浮点环境并引发之前引发的异常 (函数)

### 宏

FE_ALL_EXCEPT FE_DIVBYZERO FE_INEXACT FE_INVALID FE_OVERFLOW FE_UNDERFLOW (C++11) | 浮点异常 (宏常量)
FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD (C++11) | 浮点舍入方向 (宏常量)
FE_DFL_ENV (C++11) | 默认浮点环境 (宏常量)

### 概要

    namespace std {
        // 类型
        typedef /*对象类型*/ fenv_t;
        typedef /*整数类型*/ 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);
    }