Maison >développement back-end >C++ >Quand les références `const Foo&&` Rvalue sont-elles utiles en C ?
En C , on pourrait remettre en question l'utilité des références rvalue aux objets const. Pour approfondir ce sujet, analysons la question : « Existe-t-il des scénarios dans lesquels const Foo& & peut être avantageux, en supposant que Foo est un type de classe ? »
Étonnamment, les références const rvalue offrent des avantages distincts. Le brouillon C 0x lui-même illustre leur utilisation dans le code suivant :
template <class T> void ref(const T& &) = delete; template <class T> void cref(const T& &) = delete;
Ces surcharges empêchent efficacement d'autres fonctions, telles que ref(T&) ou cref(const T&), de se lier aux objets rvalue. Cela garantit le comportement prévu de ces fonctions.
Dans le document standard officiel N3290, qui n'est pas accessible au public, le même code est présent à la section 20.8 :
template <class T> void ref(const T& &) = delete; template <class T> void cref(const T& &) = delete;
De plus, dans le Dans la version la plus récente, N3485, ces surcharges de référence de valeur constante sont toujours présentes dans la section 20.8, soulignant leur continuité. pertinence.
Ainsi, même si l'on pourrait initialement supposer que les références const rvalue manquent d'utilité, leurs applications pratiques au sein de la norme C et dans d'autres contextes soulignent leur importance.
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!