5

私はすでに数回読んだことがあります(たとえば、ここ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++ コンパイラはジャンプを尊重するのでしょうか、それとも最終的にはオプトアウトで問題が発生するのでしょうか?

4

1 に答える 1