【问题标题】:rvalue references in Visual Studio 2010Visual Studio 2010 中的右值引用
【发布时间】:2014-08-10 20:12:32
【问题描述】:

在 Visual Studio 2010 中实现的右值引用与在 C++11 中指定的右值引用有什么区别?在 Visual Studio 2010 中使用重值引用时是否有任何需要注意的特殊缺陷,如果由符合 C++11 的编译器编译,可能会使源代码无效或工作方式不同?

【问题讨论】:

    标签: c++ visual-studio-2010 rvalue-reference


    【解决方案1】:

    根据this table,VS2010 支持右值引用 2.0 版本(当前版本是 2.1 IIRC)。

    2.0 和 2.1 的重要区别在于后者允许隐式转换:

    std::string&& x = "hello";   // legal in 2.1, illegal in 2.0
    

    还要注意 VS2010 还不支持重载 *this 的右值。

    void Foo::foo() && { ... }   // not yet supported in VS2010
    

    【讨论】:

      【解决方案2】:

      42:30 分钟 起,在 Channel 9 上查看 Stephan T. Lavavej 的视频讲座的第 9 期。他解释了 Visual Studio 中右值引用和移动语义的时间线和演变。

      这里是:C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 9 of n

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-15
        • 2011-04-19
        • 2012-07-19
        • 1970-01-01
        相关资源
        最近更新 更多