C ++, правила вычисления троичного оператора

Допустим, у меня есть следующий код:

std::vector<T> R;
if (condition) R = generate();
...
for (int i = 0; i < N; ++i) {
    const auto &r = (R.empty() ? generate() : R);
}

Похоже, что генерировать вызывается независимо отR.empty(), Это стандартное поведение?

Ответы на вопрос(1)

Ваш ответ на вопрос