在C ++中,您无法初始化rvalue中的引用,因为rvalue会立即被销毁。如何从rvalues初始化const引用?
例如:
int f() {
return 3;
}
int main() {
const int& x = f(); // ok
int& y = f(); // error: invalid initialization of non-const reference of
// type ‘int&’ from an rvalue of type ‘int’
}
答案 0 :(得分:-2)
如果我理解你的问题,我猜你想知道代码“const int& x = f();”可行,因为f()的返回值将被销毁,并且对该对象的引用无效。但请注意,任何函数的返回值都在堆栈中由编译器创建的临时变量中,因此它一直保持到调用函数返回并且其堆栈被销毁为止。