每个人都应该知道*和/运算符在C和C ++中是很好的脚注:
C ++标准库中是否有任何有助于避免这些问题的内容,例如抛出div_zero异常的std :: divide_int或抛出int_overflow异常的std :: multiply_int?如果没有,为什么? 在我看来,轻松访问这些功能将有助于编写安全的代码。
答案 0 :(得分:1)
标准库中没有任何内容。原因是整数溢出不会从CPU中传播。有些CPU有标志来检查整数溢出,有些不是。就这么简单。
答案 1 :(得分:1)
此处没有标准库功能,但您可能需要查看SafeInt库。
如果你正在使用clang,你可能还想尝试-fsanitize=integer