|
|
1
7
非const左值引用不能绑定到临时值或文字,也不能获取文字或临时值的地址。 当const左值引用绑定到临时或文字时,它基本上具有生存期扩展
编译器将其解释为
您将返回编译器延长了其生存期的对象的地址。
请注意,生命周期延长并不总是适用,请参阅 Why doesn't a const reference extend the life of a temporary object passed via a function? ,对于何时适用寿命延长有一些规则。(你需要rhs是临时的或字面的,而不是对它的引用,也不是右值引用) 字符串文字不同,请参见 C++ reference of a string literal ,它类似于生命周期扩展,你可以获取它们的地址,它们无论如何都存储在静态内存中,它们不是临时的,它们存在于函数的范围之外。 |