我正在研究一个编程问题,有没有一种方法可以检查带符号的32位整数的溢出错误,而无需使用climits的INT_MIN和INT_MAX宏。
答案 0 :(得分:2)
使用 any 技术无法检查溢出错误。这是因为签名的int
溢出的行为在C ++中是 undefined 。
您可以 做的是编写可检测潜在溢出的抢先代码。该代码的性质取决于您正在执行的操作。但是,如果您想编写可移植的C ++,那么不使用std::numeric_limits<int>
功能(取代INT_MIN
和INT_MAX
)就很难做到这一点。