Maison  >  Article  >  développement back-end  >  Comment utiliser les références rvalue ? Résumé de l'utilisation de l'exemple de référence rvalue

Comment utiliser les références rvalue ? Résumé de l'utilisation de l'exemple de référence rvalue

巴扎黑
巴扎黑original
2017-06-15 14:06:182333parcourir

1. Lvalues ​​​​et rvalues ​​​​: Il n'existe pas de définition standard des lvalues ​​​​et des rvalues ​​​​en C++, mais il existe un dicton largement reconnu : ceux qui peuvent prendre des adresses, avoir des noms et sont non temporaires sont les valeurs ; celles qui ne peuvent pas prendre d'adresses, sans nom, temporaires sont des rvalues. On peut voir que les nombres immédiats, les valeurs renvoyées par les fonctions, etc. sont tous des rvalues ​​(y compris les variables), les références renvoyées par ; les fonctions, les objets const, etc. sont tous des valeurs l. En substance, comme indiqué ci-dessus, la création et la destruction sont contrôlées par le compilateur en coulisses. Le programmeur ne peut que garantir que les valeurs r (y compris les nombres immédiats) sont valides dans cette ligne. de code ; et ceux créés par l'utilisateur, dont la durée de vie peut être connue grâce aux règles de portée, sont des lvalue (y compris les références aux variables locales et aux objets const renvoyés par les fonctions), par exemple : int& foo(){int return tmp; ;} ​ int fooo(){int tmp; ret

1 Une brève analyse des références rvalue, de la sémantique de transfert et du transfert parfait en C++11

Comment utiliser les références rvalue ? Résumé de l'utilisation de l'exemple de référence rvalue

Introduction : La sémantique de déplacement est un concept important pour c++11, et j'ai toujours vaguement compris ce concept. Récemment, je parcourais les informations et je me suis soudainement senti éclairé, alors j'ai enregistré la référence rvalue, la sémantique de transfert et le transfert parfait en C++11 pour votre référence

[Recommandations de questions-réponses associées] :

c++ - Existe-t-il une référence const rvalue ?

c++ - Pourquoi la valeur de retour de std::move() peut être affectée à une référence rvalue

Opérateur surchargé - opération en c++ La surcharge de symboles nécessite l'écriture de plusieurs versions en double (référence et référence rvalue). Existe-t-il un moyen de la simplifier

c++ - Fonction de modèle qui accepte les paramètres de référence rvalue >c++ - Quoi ? est-ce que « écraser la lvalue » signifie ?

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!

Déclaration:
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