在 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
所有。&
|
true
false