我只是想知道是否有一些方便的方法来检测运行时 C++ 程序中使用的任何默认数据类型的任何变量是否发生溢出?我所说的方便是指,如果每次变量的值发生变化时该变量都在其数据类型的范围内,则无需编写代码来跟踪每个变量。或者如果不可能实现这一点,你会怎么做?
例如,
float f1=FLT_MAX+1;
cout << f1 << endl;
在使用“gcc -W -Wall”编译或运行时不会给出任何错误或警告。
感谢致敬!
考虑使用促进数字转换 http://www.boost.org/doc/libs/1_40_0/libs/numeric/conversion/doc/html/index.html这给了你negative_overflow
and positive_overflow
例外情况(examples http://www.boost.org/doc/libs/1_40_0/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html#boost_numericconversion.improved_numeric_cast__.examples).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)