【发布时间】:2025-12-22 21:30:17
【问题描述】:
在研究右值和右值引用时,我被指出了优秀的帖子https://*.com/a/11540204/368896,其中出现了下表:
lvalue const lvalue rvalue const rvalue
---------------------------------------------------------
X& yes
const X& yes yes yes yes
X&& yes
const X&& yes yes
请注意,该表表明右值不能绑定到非 const 左值引用。
但是,在 VS2010 中我似乎可以这样做:
class A
{};
int main()
{
A & a = A(); // Binding an rvalue to a non-const lvalue reference?
}
我的误会在哪里?
【问题讨论】:
-
尝试使用
/W4编译它应该会给你一个关于“邪恶扩展”的警告。 -
特别是警告C4239。
-
他们真的还没有把这个废话转过来吗?
标签: c++ visual-studio-2010 visual-c++