Время жизни аргумента std string_view
В приведенном ниже примере у меня есть функция foo
который принимает string_view
в качестве входа и bar
возвращение временное.
std::string bar() {
return "abc";
}
void foo(std::string_view input) {
std::cout << input;
}
Вопрос в следующем: почему правильное использование (идиоматическое)?
foo(bar());
Конкретно: что гарантирует, что временный string
вернулся из bar
к тому времени еще жив foo
выполняется
Или иными словами: что гарантирует временную string
не разрушается, как только временный string_view
построен, прежде чем foo
выполняется?