Большинство языков используют короткозамкнутые и / или операторы. Например
return foo() && bar();
никогда не вызовет bar (), если foo () вернет false. Нет необходимости вызывать bar (), если мы знаем, что результат выражения в любом случае будет ложным.
Предположительно, это поведение изначально было реализовано для ускорения работы кода. Однако с тех пор технология изменилась. В частности, ответвления более дороги по сравнению с другими операциями, чем было бы в случае введения короткого замыкания.
Так что мне интересно: это все еще увеличение производительности для операторов короткого замыкания?