C ++标准以什么方式(如果有)限制未定义行为的影响?例如,在下面的代码中,从第一个if
检查undefined
是否将控制流约束为遵循then路径或else路径?是否可以跳过这两个路径?执行两个路径(可能并行执行)?跳到第二个if
的中间吗?
void f(int undefined) {
bool startNuclearWar = true;
if (undefined > 0) {
printf("True path\n");
startNuclearWar = false;
} else {
printf("False path\n");
startNuclearWar = false;
}
if (startNuclearWar) {
lauchMissles();
}
}
最佳答案
该标准对UB没有限制。当您执行任何调用UB的操作时,该标准不会保证发生任何事情。
关于c++ - 了解未定义行为的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49435323/