我有以下代码
static constexpr bool condition = true;
int square(int num) {
if constexpr (condition) {
return num * num;
} else {
x
return num;
}
}
int main() {
return square(3);
}
编译
-std=gnu++17
我的假设
if constexpr (condition)
是在编译期间
} else {
x
return num;
}
被丢弃,我没有得到关于未定义的错误
X
我的理解是错误的,这个'if constexpr'类似于
#ifdef CONDITION
return num * num;
#else
x
return num;
#endif
如何修改可以编译的代码?
谢谢您的帮助