C++11 wprowadza nowy typ referencyjny, zwany referencją do r-wartości, definiowany jako typename &&. Może być akceptowany jako nie-stała wartość, co pozwala obiektom na ich modyfikację. Taka zmiana umożliwia pewnym obiektom na stworzenie semantyki przenoszenia.
Przykładowo, std::vector jest wewnętrznie adapterem na zwykłą tablicę w stylu języka C, wraz z wielkością tej tablicy. Jeśli obiekt tymczasowy typu vector jest tworzony lub zwracany przez funkcję, to może być przechowany tylko przez stworzenie nowego obiektu vector wraz z kopiami wszystkich r-wartości. Jeśli obiekt tymczasowy jest niszczony, niszczone są też wszystkie dane. Jeśli używamy referencji do r-wartości, to "konstruktor przenoszący" (nazwa analogiczna do konstruktora kopiującego w C++) std::vector może za pomocą referencji do r-wartości po prostu kopiować wskaźnik do tablicy z r-wartości, zostawiając r-wartość w stanie pustym. Unikamy wtedy kopiowania całej tablicy, a niszczenie pustego obiektu tymczasowego odbywa się bez dealokacji pamięci. Funkcja zwracająca obiekt tymczasowy typu vector musi zwrócić tylko typ std::vector<>&&.