Rôle des règles de regroupement de références en C 11
Les règles de regroupement de références jouent un rôle crucial pour permettre un transfert parfait en C 11. Le transfert parfait permet fonctions pour accepter et transmettre de manière transparente les paramètres par valeur, référence lvalue ou rvalue référence.
Règles de regroupement de référence
Les règles de regroupement de référence pour C 11 sont :
Justification de l'effondrement des références
Ces règles garantissent que, quelle que soit la manière dont un paramètre est transmis (par lvalue, rvalue ou rvalue référence), il sera toujours "vu" par la fonction réceptrice comme le type souhaité pour un rendu parfait. transfert.
Utilisation dans les fonctions utilitaires C 11 STL
Les fonctions utilitaires STL telles que std::move() et std::forward() utilisent la réduction des références en interne pour faciliter un transfert parfait. Par exemple :
template<class T> void Fwd(T & &v) { Call(std::forward<T>(v)); }
std::forward<> réduit "& &" en "&" pour les références lvalue et "& &" en "& &" pour les références rvalue, permettant à Call de recevoir son paramètre dans le format approprié.
Relation avec std : :remove_reference
Des utilitaires comme std::remove_reference peuvent être utilisés pour supprimer des références d'une déduction de type (par exemple, std::remove_reference
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!