我有这样的代码
const int Value = 123 * 2 + GetOffset();
GetOffset
是一个返回 int
的 constexpr
函数。
如何确保此表达式确实在编译时求值?
最佳答案
你为什么不对值也使用 constexpr
呢?我认为它会要求编译器对其进行评估,
constexpr int Value = 123 * 2 + GetOffset();
如果函数 GetOffset() 很简单并且满足 constexpr
的要求。
要求是
该函数必须具有非 void 返回类型。
函数体不能声明变量或定义新类型。
正文可能只包含声明、空语句和单个返回 声明。
由于Getoffset()
返回int
,所以符合第一个。
关于c++ - 我怎么知道 C++ 编译器是否在编译时计算表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18513107/