c++ - 允许将右值绑定(bind)到非常量左值引用吗?

标签 c++ visual-studio-2010 visual-c++

在研究右值和右值引用时,我被指出了优秀的帖子 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/

相关文章:

visual-studio-2008 - qmake 和多个 MSVS 版本

c - 在 C 源代码中省略内联 ASM 代码

C++显示在txt文件中找到的唯一日期及其相关价格

c++ - 将 streambuf 的内容复制到字符串

c++ - 使用 "double"输出带两位小数的值

c++ - std::array 中的模板类

c++ - VS 2010 中的 CPP 单元构建错误

c# - 在 Visual Studio 中使用引用调试项目

c++ - 列出 PE 文件中的所有 LoadLibrary 和 GetProcAddress 调用

visual-studio-2010 - 注册表搜索和自定义操作