在C ++中,如果我有一个已经为true的布尔值,并且对它执行| =,是否可以保证仍然执行运算符右边的内容?
例如:
bool myBool = true;
myBool |= someFcnThatReturnsBoolean();
我发现它正在执行该功能,但是我需要知道是否可以通过标准明确保证可以执行该功能。我不愿遇到一个问题,即它会基于某些优化或某些编译器而停止执行。
最佳答案
bool myBool = true;
myBool |= someFcnThatReturnsBoolean();
相当于
bool myBool = true;
myBool = myBool | someFcnThatReturnsBoolean();
按位OR(
|
)将始终对两个操作数求值,因此将始终调用您的函数。关于c++ - | =运算符(operator),可能会进行短路评估?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23249665/