Время жизни аргумента 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 выполняется?

0 ответов

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