¿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