¿Por qué la referencia de valor de C ++ 0x no es la predeterminada?

Una de las nuevas características interesantes del próximo estándar de C ++, C ++ 0x, son "referencias de valor". Una referencia rvalue es similar a una referencia lvalue (normal), excepto que puede vincularse a un valor temporal (normalmente, un temporal solo puede vincularse a unconst referencia):

void FunctionWithLValueRef(int& a) {...}
void FunctionWithRValueRef(int&& a) {...}

int main() {
     FunctionWithLValueRef(5); // error, 5 is a temporary
     FunctionWithRValueRef(5); // okay
}

Entonces, ¿por qué inventaron un tipo completamente nuevo, en lugar de simplemente eliminar las restricciones a las referencias normales para permitir que se unan a temporale

Respuestas a la pregunta(4)

Su respuesta a la pregunta