如何在C++中启用浮点数的运行时检查
How do I enable run-time checking of floats in C++
我似乎记得在以前的工作中,在跟踪某个错误时,我添加了一个对函数的调用,以确保以某种方式报告浮点错误。我不记得具体是怎么回调的 - 可能是回调,或者当它发生时,它立即导致 Visual Studio 中断。
尝试搜索这个,但一无所获。这是否为任何人敲响了警钟?这是针对Windows游戏的,如果这很重要的话。
(我不是在谈论在Visual Studio中启用首次机会异常,我也想"实时"捕获它)。
它被称为浮点环境。 引用:
- http://en.cppreference.com/w/cpp/numeric/fenv (C++11)
- http://pubs.opengroup.org/onlinepubs/009604599/basedefs/fenv.h.html (Unix)
若要获取异常以立即停止程序,请使用特定于平台的函数:
- http://www.gnu.org/s/hello/manual/libc/Control-Functions.html(格利布)
- http://msdn.microsoft.com/en-us/library/e9b52ceh.aspx (视窗)
- 另外:http://msdn.microsoft.com/en-us/library/5z4bw5h5.aspx 获得C++例外;我想这就是你所追求的。
相关文章:
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 我在将 10^18 存储为浮点数时遇到问题
- 当没有浮点数据类型时,为什么此代码会出现浮点异常
- 将浮点数转换为字符串时如何加快此代码的速度?
- 使用 std::cin 的输入仅适用于浮点数,仅当值尾随字母"e"(大写和小写)时
- 当我们C++将两个数组的整数除以 时,如何获得浮点数计算;
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- 当浮点数文本直接分配给不同的类型时,编译器如何处理浮点文字?
- 添加 2 个浮点数时保持精度
- C++:编译时断言浮点数的值
- 无法在初始化时将浮点数转换为浮点数
- C++ 标准库堆栈使用情况.推送浮点数组时出现问题
- 在构造时初始化浮点数组
- 在C++中对浮点变量执行算术时,是否始终需要使用浮点数文字
- 对浮点数 -2.584877722073e-33 使用 log10() 时出错
- 如何在C++中启用浮点数的运行时检查
- 在运行时定义双精度或浮点数的精度/大小
- 在初始化浮点数组时,c++交叉初始化跳转到case标号
- 访问外部浮点数组时遇到问题
- 两个浮点数相加时的意外输出