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
template
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!