【发布时间】:2021-06-17 07:46:34
【问题描述】:
为什么这段代码是非常量条件?
static_assert(4294965 * 1000 / 1000 == -2, "overflow occurs");
但这不是:
const int overflowed = 4294965 * 1000 / 1000;
static_assert(overflowed == -2, "overflow occurs");
参见godbolt 上的代码。 注意:使用 gcc
【问题讨论】:
-
有符号整数溢出是未定义的行为。
标签: c++11 static-assert precompiler