在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/

10-13 08:22