考虑下面的C++代码。引用是否会导致内存泄漏?
struct foo { std::string value; }
inline foo bar() { return { "42" }; }
现在想象一下,我有一个函数使用bar()以下面的方式。
std::string my_func()
{
const auto &x = bar();
return x.value;
}
这是否泄漏内存因为my_func只保存对x的引用?或者在my_func终止后x仍然清理干净?
我知道这不是应该如何使用引用。但我只是意识到这个编译好,并想知道它的语义是什么。
这应该甚至编译?你不需要'const auto&'? – Brian
你说得对。我有我的原始代码中的const auto。 –