Visual Studio 2010 中实现的右值引用与 C++11 中指定的右值引用有什么区别?在 Visual Studio 2010 中使用重值引用时是否有任何需要注意的特殊陷阱,如果由符合 C++11 的编译器编译,可能会使源代码无效或工作方式不同?
问问题
938 次
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 中右值引用和移动语义的时间线和演变。
于 2011-10-28T14:28:10.057 回答