【发布时间】:2019-05-16 10:29:51
【问题描述】:
在 C++ 中,当您具有以下条件时:
std::string get_string();
std::string const& v = get_string();
从 get_string() 返回的临时对象的生命周期延长到引用 v 的相同生命周期;
如果我有以下情况:
std::string const& get_string(std::string const& p) {
return p;
}
std::string const& v =
get_string(std::string{"Hello"});
临时的生命周期是否延长?还是这是一个悬空的参考;
我的理解是临时绑定到 p 的生命周期 并且仅在函数的持续时间内存在,并且对临时的辅助引用不会延长生命周期。
预期的结果是什么?
【问题讨论】:
-
这似乎是旧 stackoverflow.com/q/14735630/560648 的一个更好的版本