2011-08-21 4 views
9

Quelles sont les différences entre les références rvalue telles qu'elles sont implémentées dans Visual Studio 2010 et celles spécifiées dans C++ 11? Existe-t-il des pièges particuliers à surveiller lors de l'utilisation de références revalue dans Visual Studio 2010 qui pourraient rendre la source invalide ou fonctionner différemment si compilé par le compilateur conforme C++ 11?Références rvalue dans Visual Studio 2010

Répondre

5

Selon this table, VS2010 prend en charge les références rvalue version 2.0 (la version actuelle est 2.1 IIRC).

La différence importante entre 2.0 et 2.1 est que celui-ci permet des conversions implicites:

std::string&& x = "hello"; // legal in 2.1, illegal in 2.0 

Notez également que VS2010 ne supporte pas encore la surcharge sur le rvalueness de *this.

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