2011-08-21 22 views
9

¿Cuáles son las diferencias entre las referencias de rvalue implementadas en Visual Studio 2010 y las especificadas en C++ 11? ¿Hay algún inconveniente especial a tener en cuenta al usar referencias de revalor en Visual Studio 2010 que podrían hacer que el origen no sea válido o funcione de manera diferente si se compila con el compilador conforme a C++ 11?referencias de rvalue en Visual Studio 2010

Respuesta

5

De acuerdo con this table, VS2010 admite las referencias de rvalue versión 2.0 (la versión actual es 2.1 IIRC).

La diferencia importante entre 2.0 y 2.1 es que el último permite conversiones implícitas:

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

También tenga en cuenta que VS2010 todavía no soporta la sobrecarga en el rvalueness de *this.

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