Я видел своего рода «поэтический» код в некоторой базе кода. Хотя он выглядит прямо, просто хочу подтвердить, если он в правильном направлении.
В очень простой форме:Использование логического оператора без какого-либо условного оператора или записи в переменной
bool foo();
bool bar();
int main() {
foo() or bar(); // <--- line
}
ли код на выделенной линии так же хорошо, как показано ниже фрагмент кода?
if(foo() == false)
bar();
Я знаю ,
оператора, где все операторы вызываются, но не уверены в or
(эквивалент ||
) оператора.
Тестирование в g ++ дает expected output.
Бросьте несколько триграфов в этом, и это делает это стихотворение совершенно болезненным, кстати. = Р. Независимо от того, ваш вопрос касается многочастичной булевой оценки короткого замыкания, и да, 'exp1 || exp2' * почти * тот же. Единственное, чего не хватает, это неиспользуемый результат 'exp2' * *, который в обоих случаях все равно выброшен (если он достигнут в первую очередь, что происходит только с' exp1', равно нулю). – WhozCraig
Прошу прощения @iammilind, но это обман. В следующий раз убедитесь, что вы используете Google C++-операторы или тому подобное. –
Возможный дубликат [Как работает C++ handle &&? (Оценка короткого замыкания)] (http://stackoverflow.com/questions/5211961/how-does-c-handle-short-circuit-оценка) –