std::string f(){
return "xx";
}
int main(){
const std::string& ref = f();
// use ref
}
f
按值返回临时字符串。 main
通过const引用“捕获”。
在C ++中可以吗?
答案 0 :(得分:1)
很好。 Temporary可以绑定到const或rvalue引用的左值引用,并且其生存期将延长到引用的生存期。
无论何时将引用绑定到临时对象或其子对象,临时对象的生存期都会延长以匹配引用的生存期
答案 1 :(得分:1)
是的,没事:std::string
的生存期延长到const
引用的生存期。
但是请注意,该行为不是可传递的:即,不要为const
分配ref
引用,以期望进一步延长生存期。