случае с логическим и? Про short-circuting я знаю, он меня в этом вопросе не интересует.
Порядок выполнения подобного выражения:
(func() && a < 3 && func_b())
всегда будет последовательным или может быть произвольным?
Всегда будет последовательным
Зависит от того что возвращает func() и func_b()
Да, всегда
Правильно ли я понимаю, что в этом случае гарантируется только ассоциативность оператора &&, но компилятор может выполнить функции func() и func_b() в любом порядке и как ему вообще захочется?
Every value computation and side effect of the first (left) argument of the built-in logical AND operator && and the built-in logical OR operator || is sequenced before every value computation and side effect of the second (right) argument.
Обсуждают сегодня