在 C++ 中编写这样的代码时:
bool allTrue = true;
allTrue = allTrue && check_foo();
allTrue = allTrue && check_bar();
check_bar()check_foo()如果返回将不会被评估false。这称为短路或短路评估,是惰性评估原则的一部分。
这是否适用于复合赋值运算符&=?
bool allTrue = true;
allTrue &= check_foo();
allTrue &= check_bar(); //what now?
对于逻辑用和替换OR所有。&|truefalse