我希望将代码包含在基于编译时常量值的函数中,但 static_if 不是 C++ 中的构造。
所以我可以写这样的函数
class TA {
public:
template<bool flag>
void func() {
if(flag)
a++;
}
int a;
};
int main() {
TA a;
a.func<true>();
a.func<false>();
}
我想保证编译器有两个函数。一个将“if(flag) a++”编译到函数中,一个不编译。
是否有可能根据 C++17 标准获得此保证,还是我受编译器供应商的摆布?
谢谢。