Maison > développement back-end > C++ > Que sont les références C 11 Rvalue (&&) et comment sont-elles utilisées ?

Que sont les références C 11 Rvalue (&&) et comment sont-elles utilisées ?

DDD
Libérer: 2024-12-20 15:48:25
original
160 Les gens l'ont consulté

What are C  11 Rvalue References (&&) and How Are They Used?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal