9

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

4

2 回答 2

5

根据这张表,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
于 2011-08-21T12:58:11.993 回答
1

从42:30开始,在第 9 频道观看Stephan T. Lavavej的视频讲座的第 9。他解释了 Visual Studio 中右值引用和移动语义的时间线和演变。

这里是:C9 讲座:Stephan T. Lavavej - 标准模板库 (STL),9 of n

于 2011-10-28T14:28:10.057 回答