Продолжительность жизни и условный оператор
локальные ссылки на lvalue-to-const и rvalue могут продлить время жизни временных файлов:
const std::string& a = std::string("hello");
std::string&& b = std::string("world");
Это также работает, когда инициализатор не является простым выражением, но использует условный оператор?
std::string&& c = condition ? std::string("hello") : std::string("world");
Что делать, если один из результатов является временным объектом, а другой нет?т?
std::string d = "hello";
const std::string& e = condition ? d : std::string("world");
Обязывает ли C ++ время жизни временного объекта продлевать, когда условие ложно?
Вопрос возник при ответеэтот вопрос о не копируемых объектах.