如这个问题所示:link,如果两个if
分支都有效,则没有区别:
const int foo = 5;
if (foo == 5)
{
...
}
else
{
...
}
和
const int foo = 5;
if constexpr (foo == 5)
{
...
}
else
{
...
}
在优化方面(在这两种情况下,else
分支都不会被实例化)。if
因此,如果可以在编译时检查vanilla 中的表达式(它涉及 a const
or constexpr
) - 优化也可以在这里工作。
我以前认为这是 的目的if constexpr
,但我错了。那么除了案例之外是否还有其他用例,if constexpr
那么我们可能只有许多if
分支中的一个有效?