При написании кода в С++:
bool allTrue = true;
allTrue = allTrue && check_foo();
allTrue = allTrue && check_bar();
check_bar() не будет оцениваться, если check_foo() возвращен false. (Это, по-видимому, называется ленивая оценка
EDIT: Или нет, как указано в комментариях. Он называется короткого замыкания или короткого замыкания, но является частью ленивого принципа оценки)
Это работает с оператором составного назначения &=?
bool allTrue = true;
allTrue &= check_foo();
allTrue &= check_bar(); //what now?
Для логического OR замените все & на | и true на false.