Я смущен, будет ли в следующем фрагменте foo
быть действительным, то есть, разрешено ли мне сохранять возвращаемые значения функции в качестве ссылок на const?Ссылка на возвращаемое значение функции
Я спрашиваю, потому что возвращаемое значение сохраняется в стеке, что может быть недействительным вскоре после того, как значение было возвращено.
Foo getFoo() {
return Foo();
}
void bar() {
const auto& foo = getFoo();
// more function calls...
// is foo guaranteed to be valid?
}
Да, это действительно. –
Я хотел подчеркнуть другой аспект вопроса. Тот, который обозначен как дубликат, и ссылка Херба Саттера действительно не адресуют перспективы памяти. Мне очень любопытно, почему ссылочный объект не получает перезапись при назначении новых стековых кадров. – user695652
Я полагаю, что это определенная реализация. –