C++17 引入了“constexpr if”关键字,它根据编译时条件进行实例化。
这是否意味着在模板函数中使用“constexpr if”比使用 switch 语句更好?
例如:
template<int val> void func()
{
if constexpr(val == 0) {} else
if constexpr(val == 1) {} else
...
if constexpr(val == k) {} else {}
}
// vs
template<int val> void func()
{
switch (val)
{
case 0:
break;
case 1:
break;
...
case k:
break;
default:
break;
}
}