标准库标头 <cfenv> (C++11)
来自cppreference.com
此标头原作为 <fenv.h> 存在于 C 标准库。
此头文件是浮点数环境库的一部分。
目录 |
[编辑] 类型
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 /* 见描述 */ // 可选 #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 必须是整数类型
|
可以是对象类型 |