在研究右值和右值引用时,我被指出了优秀的帖子 https://stackoverflow.com/a/11540204/368896 ,其中出现下表:
lvalue const lvalue rvalue const rvalue
---------------------------------------------------------
X& yes
const X& yes yes yes yes
X&& yes
const X&& yes yes
请注意,该表表明右值无法绑定(bind)到非常量左值引用。
但是,在VS2010中我似乎可以这样做:
class A
{};
int main()
{
A & a = A(); // Binding an rvalue to a non-const lvalue reference?
}
我的误解在哪里?
最佳答案
这是 Microsoft 编译器的编译器“扩展”(或“bug”,取决于您的观点)。 C++ 只允许将左值非常量绑定(bind)到非常量左值引用。
关于c++ - 允许将右值绑定(bind)到非常量左值引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734600/