在Visual Studio 2010中实现和在C++ 11中指定的右值引用之间有什么区别?在Visual Studio 2010中使用重值引用时,是否有任何特别的陷阱需要注意,如果使用符合C++ 11的编译器进行编译,则可能使源无效或工作方式不同?
最佳答案
根据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
关于c++ - Visual Studio 2010中的右值引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7138392/