Przedłużenie żywotności i operator warunkowy

odwołania do lokalnej wartości l-const i referencji r mogą zwiększyć żywotność tymczasowych:

const std::string& a = std::string("hello");
std::string&& b = std::string("world");

Czy to działa również, gdy inicjator nie jest prostym wyrażeniem, ale używa operatora warunkowego?

std::string&& c = condition ? std::string("hello") : std::string("world");

Co jeśli jeden z wyników jest obiektem tymczasowym, a drugi nie?

std::string d = "hello";
const std::string& e = condition ? d : std::string("world");

Czy C ++ wymaga przedłużenia czasu życia tymczasowego, gdy warunek jest fałszywy?

Pytanie pojawiło się podczas odpowiadaniato pytanie o obiektach, których nie można skopiować.

questionAnswers(2)

yourAnswerToTheQuestion