Использование логического оператора без каких-либо условных выражений или захвата в переменную

Я видел своего рода «поэтический» код в некоторой кодовой базе. Хотя это выглядит прямо вперед, просто хочу подтвердить, если это в правильном направлении.
В очень простой форме:

bool foo ();
bool bar ();

int main () {
foo() or bar();  // <--- line
}

Код в выделенной строке так же хорош, как и фрагмент ниже?

if(foo() == false)
bar();

Я в курсе , оператор, где все операторы вызываются, но не уверены в or (эквивалентно ||) оператор.
Тестирование в g ++, это дает ожидаемый результат.

2

Решение

Да, or оператор является текстовым эквивалентом ||,

Итак, что вы сказали, правильный.

1

Другие решения

Если 1-е условие true другой больше не оценивается (в ||дело) и поэтому, как вы сказали:

if(foo() == false)
bar();

То же самое относится и к && когда, если 1-е условие falseвторой больше не оценивается.

0

По вопросам рекламы [email protected]