Questions marquées «perfect-forwarding»


6
Quels sont les principaux objectifs de l'utilisation de std :: forward et quels problèmes cela résout-il?
Dans une transmission parfaite, std::forwardest utilisé pour convertir les références rvalue nommées t1et les t2références rvalue non nommées. Quel est le but de faire cela? Comment cela affecterait-il la fonction appelée innersi nous quittons t1& t2as lvalues? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); …

6
make_unique et transfert parfait
Pourquoi n'y a-t-il pas de std::make_uniquemodèle de fonction dans la bibliothèque C ++ 11 standard? je trouve std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); un peu bavard. Les éléments suivants ne seraient-ils pas beaucoup plus agréables? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Cela cache newbien et ne mentionne le type qu'une seule …


1
Comment appeler std :: forward sur tous les arguments d'une fonction variadique?
J'écrivais juste une fabrique d'objets génériques et j'utilisais la méta-bibliothèque du préprocesseur boost pour créer un modèle variadique (en utilisant 2010 et cela ne les prend pas en charge). Ma fonction utilise des références rval et std::forwardpour faire un transfert parfait et cela m'a fait réfléchir ... quand C ++ …

1
Puis-je list-initialiser std :: vector avec une transmission parfaite des éléments?
J'ai remarqué que globale liste initalization de std :: vecteur effectue l' initialisation de copie lors de déplacement est plus applicable. En même temps, plusieurs emplace_backs font ce que je veux. Je ne pouvais que trouver cette solution imparfaite d'écrire une fonction de modèle init_emplace_vector. Cependant, il n'est optimal que …
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.