2011-08-21 39 views
9

在Visual Studio 2010中實現的右值引用與C++ 11中指定的右值引用有什麼區別?在Visual Studio 2010中使用重估引用時,是否有任何特殊的缺陷要注意,如果使用C++ 11編譯器進行編譯,可能導致源代碼無效或工作方式不同?Visual Studio 2010中的右值引用

回答

5

根據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的rvalueness。

void Foo::foo() && { ... } // not yet supported in VS2010