在研究 rvalues 和 rvalue references 时,我被指出了出色的帖子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
请注意,该表表明右值不能绑定到非常量左值引用。
但是,在 VS2010 中,我似乎能够这样做:
class A
{};
int main()
{
A & a = A(); // Binding an rvalue to a non-const lvalue reference?
}
我的误解在哪里?