如何检测C++中的溢出?

Tim*_*Tim 4 c++ gcc overflow

我只是想知道是否有一些方便的方法来检测在运行时期间C++程序中使用的任何默认数据类型的任何变量是否发生溢出?方便的是,我的意思是,如果每个变量的值都在其数据类型的范围内,则无需编写代码来跟踪每个变量.或者如果不可能实现这一点,你会怎么做?

例如,

float f1=FLT_MAX+1;
cout << f1 << endl;
Run Code Online (Sandbox Code Playgroud)

在使用"gcc -W -Wall"编译或运行时,不会给出任何错误或警告.

感谢致敬!

Geo*_*che 6

考虑使用提升数字转换,让你negative_overflowpositive_overflow异常(例子).