Jeśli obiekt vector posiada konstruktor przenoszący, wtedy ten konstruktor może być wywołany, co zapobiega wielu nadmiarowym operacjom alokacji pamięci.

Niech na potrzeby niniejszego artykułu referencja do r-wartości nazywa się r-referencją. Analogicznie, niech zwykła referencja nazywa się l-referencją. Wtedy mając l-referencje i r-referencje, programista może pisać dokładne funkcje przekazujące (ang. forwarding functions). Dokładność polega tu na całkowitej zgodności typów. Gdy ma do dyspozycji tylko l-referencje (tak jest w starszym standardzie C++), wtedy ogólnie rzecz biorąc, takie funkcje miałyby tylko przybliżone listy argumentów (nie do końca zgodne typy). Gdy l-referencje i r-referencje stosuje się łącznie z funkcjami lub metodami szablonowymi o zmiennych listach argumentów (ang. variadic templates), wtedy uzyskuje się możliwość dokładnego przekazywania argumentów do innej funkcji o ustalonej liście parametrów. Jest to najbardziej przydatne przy przekazywaniu parametrów konstruktora w celu stworzenia takich funkcji fabrykujących (ang. factory functions), które automatycznie wywołają właściwy konstruktor dla tych argumentów.