可能重复:
const 引用是否会延长临时对象的寿命?
我的编译器不会抱怨将临时分配给 const 引用:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
为什么?我认为从返回的字符串foo
是临时的,并且 val 可以指向生命周期已经结束的对象。C++ 标准是否允许这样做并延长返回对象的生命周期?