私はすでに数回読んだことがあります(たとえば、ここCompiler: What if condition is always true / false)まともなc ++コンパイラは次のようなものをオプトアウトします
if(false)
{
...
}
if(false)
しかし、このブロックに意図的にジャンプした場合はどうなるでしょうか。このようなことを念頭に置いています
#include <iostream>
void func(int part){
switch (part) {
case 0:{
if(false)
case 1:{std::cout << "hello" << std::endl;}
break;
}
default:
break;
}
}
int main()
{
func(0);
func(1);
return 0;
}
適切な C++ コンパイラはジャンプを尊重するのでしょうか、それとも最終的にはオプトアウトで問題が発生するのでしょうか?