conversión de rvalue a lvalue Visual Studio

En Visual Studio 2012RC hay algunas extensiones no estándar. Por ejemplo este código compila:

#include <string>

using namespace std;

void value(string& value)
{
    value = "some";
}

int main()
{
    value(string("nice"));
}

y recibe una advertencia de que no es una extensión estándar. Entonces, quiero entender, ¿cómo es real y cómo se transforma el código (rvalue-reference o const reference con const_cast)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta