标准库标头 <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 必须是整数类型
|
可以是对象类型 |