Auswertungsregeln für ternäre Operanden in C ++

Nehmen wir an, ich habe folgenden Code:

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

Es scheint, dass generate unabhängig von aufgerufen wirdR.empty(). Ist das Standardverhalten?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage