【发布时间】:2015-12-11 16:44:11
【问题描述】:
在 C++11 中,如果我尝试这样做:
int x = 5;
int && y = x;
它将无法编译,并显示一个错误,指出右值引用无法绑定到左值。
但是如果我这样做:
int x = 5;
auto && y = x;
它编译没有错误。为什么会这样?我试图获取y 的类型,但typeid() 带走了引用属性。 auto && 是否会根据分配的内容自动折叠为 & 或 &&?
【问题讨论】:
-
你的意思是
= x,不是吗?不要忘记,您可以随时使用typeid检查类型 -
回想一下,转发(通用)引用是
<deduced type> &&。 -
如你所说。
-
现在正式名称为forwarding references