Есть ли способ добиться продления срока службы путем связывания ссылок, кроме встроенной декларации?

Я знаю, что могу использовать "привязку ссылки на расширение продолжительности жизни", чтобы сохранить временную локальную область действия 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 вне локального контекста, не превращая его в постоянный объект?

0 ответов

Другие вопросы по тегам