在Visual Studio 2010中实现的rvalue引用和C++11中规定的rvalue引用有什么区别?在使用Visual Studio 2010中的rvalue引用时,有没有需要注意的特殊陷阱,这些陷阱可能会使源代码无效或在由符合C++11标准的编译器编译时工作不同?
在Visual Studio 2010中实现的rvalue引用和C++11中规定的rvalue引用有什么区别?在使用Visual Studio 2010中的rvalue引用时,有没有需要注意的特殊陷阱,这些陷阱可能会使源代码无效或在由符合C++11标准的编译器编译时工作不同?
std::string&& x = "hello"; // legal in 2.1, illegal in 2.0
还要注意的是,VS2010目前不支持根据*this
的rvalueness进行重载。
void Foo::foo() && { ... } // not yet supported in VS2010
请查看Stephan T. Lavavej在Channel 9的第9个安装程序,从42:30分钟开始。他解释了Visual Studio中rvalue引用和移动语义的时间轴和演变。