通过const引用获取字符串

时间:2018-09-19 07:10:07

标签: c++ c++11

std::string f(){
   return "xx";
}

int main(){

const std::string& ref = f();
// use ref
}

f按值返回临时字符串。 main通过const引用“捕获”。 在C ++中可以吗?

2 个答案:

答案 0 :(得分:1)

很好。 Temporary可以绑定到const或rvalue引用的左值引用,并且其生存期将延长到引用的生存期。

  

无论何时将引用绑定到临时对象或其子对象,临时对象的生存期都会延长以匹配引用的生存期

答案 1 :(得分:1)

是的,没事:std::string的生存期延长到const引用的生存期。

但是请注意,该行为不是可传递的:即,不要为const分配ref引用,以期望进一步延长生存期。