При написании кода в С++:
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
.