❶ 【求助】C++算术溢出的捕获与处理问题!
反对最佳答案做法。编译器可以把if(a<0)这句优化成if false从而不执行这个语句,这样做是符合C++标准的。如果非按最佳答案的写法要检测运算上溢,必须调整-Wstrict-overflow和-fwrapv编译选项才能保证代码不出错。明确回答楼主:不能检测。目前主流的编译器只有Clang实现了算术上溢检测,而且只用于调试目的,不可用于生产。