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