Есть ли способ добиться продления срока службы путем связывания ссылок, кроме встроенной декларации?
Я знаю, что могу использовать "привязку ссылки на расширение продолжительности жизни", чтобы сохранить временную локальную область действия const auto& temp = "lorem ipsum"s
но мне было любопытно, если бы был способ заставить продолжительность вне локальной области, не преобразовывая это в постоянный объект.
Более конкретно, мне интересно, если бы я мог сделать: const auto& temp = foo();
Попытка 1:
const string& foo() {
const auto& temp = "lorem ipsum"s;
return temp;
}
Попытка 2:
struct bar {
const string& temp;
};
const bar foo() {
const auto& temp = "lorem ipsum"s;
const bar result = {temp};
return result;
}
Есть ли способ, о котором я не думал, который позволит мне получить temp
вне локального контекста, не превращая его в постоянный объект?