Maison > développement back-end > C++ > Quand les références `const Foo&&` Rvalue sont-elles utiles ?

Quand les références `const Foo&&` Rvalue sont-elles utiles ?

DDD
Libérer: 2024-12-09 19:00:22
original
580 Les gens l'ont consulté

When Are `const Foo&&` Rvalue References Useful?

Références Rvalue à Const : une perspective pratique

Malgré la croyance commune selon laquelle les références rvalue à const (const Foo&&) n'ont aucune utilité, il sont en effet des applications pratiques pour eux, comme le démontre le projet C 0x lui-même.

Le projet C 0x utilise de telles références dans diverses instances pour empêcher la liaison indésirable de rvalues ​​à d'autres fonctions ref(T&) et cref(const T&). Ces fonctions sont spécifiquement conçues pour accepter uniquement les lvalues ​​(références à des objets), et les références rvalue à const garantissent que les rvalues ​​(références à des objets temporaires) ne sont pas liées par erreur.

Récemment, après avoir examiné la norme officielle N3290 (non publiquement accessible), nous avons découvert la ligne suivante dans 20.8 Function object [function.objects]/p2 :

template void ref(const T&&) = delete;
template void cref(const T&&) = delete;

Un examen plus approfondi du projet post-C 11 le plus récent, N3485 (accessible au public), confirme la persistance de ces lignes dans 20.8 Objets de fonction [function.objects]/p2 .

Ces exemples illustrent l'utilité des références rvalue à const dans certains scénarios, en particulier pour garantir le comportement correct des surcharges de fonctions et empêcher la liaison involontaire de 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