【发布时间】:2019-10-09 09:12:41
【问题描述】:
我有以下代码
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
如何修改这段代码才能编译它?
感谢您的帮助
【问题讨论】:
标签: c++ c++17 if-constexpr