我的编译器对将临时变量赋值给常量引用没有任何抱怨:
为什么?我以为从
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
为什么?我以为从
foo
返回的字符串是临时的,而val可以指向生命周期已经结束的对象。C++标准允许这样做并延长了返回对象的生命周期吗?