Siamo abbondantemente off topic rispetto all'argomento di apertura.
In brevissimo si può dire che il C++11 ha introdotto la move semantics per poter modificare i dati a sinistra di un'espressione (gli rvalue appunto), cosa che prima si poteva fare solo tramite salti mortali e in condizioni particolari.
Nota che per rvalue si intendono anche i temporanei di un'espressione.