Namespaces
Variants

Standard library header <cfenv> (C++11)

From cppreference.net
Standard library headers

该头文件最初作为 <fenv.h> 存在于 C 标准库中。

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

目录

类型

fenv_t
(C++11)
表示整个浮点环境的类型
(typedef)
fexcept_t
(C++11)
表示所有浮点状态标志的集合类型
(typedef)

函数

清除指定的浮点状态标志
(函数)
检测哪些指定的浮点状态标志被设置
(函数)
触发指定的浮点异常
(函数)
从浮点环境复制或向浮点环境复制指定浮点状态标志的状态
(函数)
(C++11) (C++11)
获取或设置舍入方向
(函数)
保存或恢复当前浮点环境
(函数)
保存环境,清除所有状态标志并忽略所有后续错误
(函数)
恢复浮点环境并触发先前触发的异常
(函数)

浮点异常
(宏常量)
浮点舍入方向
(宏常量)
(C++11)
默认浮点环境
(宏常量)

概要

#define FE_ALL_EXCEPT /* 参见描述 */
#define FE_DIVBYZERO /* 参见描述 */    // 可选
#define FE_INEXACT /* 参见描述 */      // 可选
#define FE_INVALID /* 参见描述 */      // 可选
#define FE_OVERFLOW /* 参见描述 */     // 可选
#define FE_UNDERFLOW /* 参见描述 */    // 可选
#define FE_DOWNWARD /* 参见描述 */     // 可选
#define FE_TONEAREST /* 参见描述 */    // 可选
#define FE_TOWARDZERO /* 参见描述 */   // 可选
#define FE_UPWARD /* 参见描述 */       // 可选
#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++标准。

缺陷报告 应用于 发布时的行为 正确行为
LWG 3905 C++11 std::fexcept_t 必须是整数类型 应为对象类型