Utilisation de '&&' (double esperluette) en C 11
C 11 a introduit un nouveau type de référence appelé rvalue référence, indiquée par le symbole double esperluette "&&".
Quoi est une référence Rvalue ?
Une référence rvalue est une référence qui peut se lier à une rvalue, qui est une expression ou une valeur temporaire qui n'est pas affectée à une variable nommée. Cela contraste avec les références lvalue, qui se lient à des variables ou des objets nommés.
Avantages des références Rvalue
Les références Rvalue offrent plusieurs avantages, notamment :
-
Déplacer la sémantique :Ils permettent Opérations de « déplacement » efficaces, qui transfèrent des ressources d'un objet à un autre sans copie.
-
Transfert parfait : Elles permettent aux fonctions de modèle de transmettre correctement les arguments en fonction de leur statut rvalue/lvalue.
Syntaxe et utilisation
T&& var; // Déclare une référence rvalue à T nommée 'var'
Quand utiliser les références Rvalue
Utiliser les références rvalue dans les scénarios suivants :
-
Déplacer les constructeurs et les opérateurs : Pour définir des fonctions qui peuvent déplacer efficacement des ressources d'un rvalue.
-
Transfert parfait : Pour créer des fonctions génériques capables de gérer les rvalues et les lvalues de manière transparente.
-
Conversions implicites : Pour permettre aux références rvalue de se lier aux temporaires qui résultent d'implicites conversions.
Propriétés importantes
-
Résolution de surcharge : Les références Lvalue sont préférées pour les lvalues, tandis que les références rvalue sont préférées pour rvalues.
-
Liaison implicite : Rvalue les références peuvent se lier à des valeurs r et temporaires sans conversion explicite.
-
Catégorie de valeurs : Les références rvalue nommées sont des lvalues, tandis que les références rvalue non nommées sont des rvalues.
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!