在Visual Studio2010中实现的右值引用与C++11中指定的右值引用有什么不同?在Visual Studio2010中使用revalue引用时,是否有任何特殊的陷阱需要注意,这些陷阱可能会使源代码无效,或者如果使用符合C++11的编译器进行编译,会有不同的工作方式?
发布于 2011-08-21 20:58:12
根据this table的说法,VS2010支持右值引用2.0版(当前版本是2.1IIRC)。
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-10-28 22:28:10
查看Stephan T. Lavavej在Channel 9上的视频讲座的第9期,从42:30分钟开始。他解释了右值引用的时间线和演变,以及Visual Studio中的移动语义。
这就是:C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 9 of n
https://stackoverflow.com/questions/7138392
复制相似问题