Mükemmel iletme
Argümanları geçici olup olmadıklarını kaybetmeden başka bir işleve aktarmak. make_unique ile emplace_back’in yazılabilmesini sağlayan şey.
Argümanlarını sıradan referans olarak alan bir sarmalayıcı değer kategorisi bilgisini yitirir: işlevin içinde her şey adlandırılmış nesne gibi görünür, bu yüzden taşınması gereken bir geçici kopyalanır. Çözüm şu kalıptır: template<class... A> void f(A&&... a) { g(std::forward<A>(a)...); }. Buradaki çift & rvalue referansı değil, iletme başvurusudur (forwarding reference), çünkü tür çıkarsanır — referans çökmesi kuralları onun hem geçicilere hem adlandırılmış nesnelere bağlanmasını, ayrımı çıkarsanan türde korumasını sağlar. std::forward da özgün kategoriyi geri getiren koşullu bir dönüşümdür. Onu unutursanız kalıbın anlamı kalmaz.