Maison > développement back-end > C++ > Que signifie la double esperluette (&&) en C 11 ?

Que signifie la double esperluette (&&) en C 11 ?

Mary-Kate Olsen
Libérer: 2024-12-22 05:54:09
original
425 Les gens l'ont consulté

What Does the Double Ampersand (&&) Mean in C  11?

Déchiffrer la double esperluette en C 11

C 11 introduit un nouvel opérateur, la double esperluette (T&&), qui a suscité une attention considérable . Ce symbole énigmatique a suscité la curiosité et des questions quant à sa signification et son utilité.

Qu'est-ce que la double esperluette ?

L'opérateur double esperluette déclare une référence rvalue. Cette référence rvalue, par opposition à une référence lvalue traditionnelle en C 03, peut se lier à la fois aux rvalues ​​(temporaires) et aux lvalues ​​sans avoir besoin d'un qualificatif const. Par conséquent, il permet la déclaration d'une variable de référence rvalue qui peut faire référence à une variable temporaire.

L'objectif des références Rvalue

Les références Rvalue fournissent principalement les améliorations suivantes :

Sémantique de déplacement :

La sémantique de déplacement permet définition de constructeurs de déplacement et d'opérateurs d'affectation de déplacement qui prennent une référence rvalue au lieu d'une référence const lvalue. Les fonctions de déplacement simulent le comportement de copie tout en évitant d'avoir à conserver la source. Ils modifient généralement la source pour libérer la propriété de ses ressources, ce qui entraîne des opérations plus efficaces et réduit les copies inutiles.

Transfert parfait :

Les références Rvalue facilitent le transfert correct des arguments dans les fonctions basées sur un modèle. Cela permet la création de fonctions d'usine génériques comme std::forward qui peuvent accepter n'importe quelle combinaison d'arguments lvalue ou rvalue et les transmettre au constructeur approprié.

Propriétés supplémentaires des références Rvalue :

  • Les valeurs Lvalue préfèrent les références lvalue, tandis que les rvalues ​​préfèrent les références rvalue en surcharge résolution.
  • Les références Rvalue se lient implicitement aux rvalues ​​et aux temporaires qui résultent de conversions implicites.
  • Les références rvalue nommées sont des lvalues, tandis que les références rvalue sans nom 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal