Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

C++ : La sémantique de déplacement

Comprendre les rvalues et les lvalues

Testez gratuitement nos 1344 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
La composante move semantics s'appuie sur le concept clé des rvalues et lvalues. Apprenez à distinguer clairement ces deux types d'expression.

Transcription

Pour bien aborder la sémantique de déplacement nous devons prendre le temps de bien définir le concept de lvalue et de rvalue. Partons d'un exemple. Nous avons ici une affectation de b + 1 dans a. Nous pouvons dire que toute expression qui peut apparaître à gauche d'une affectation est une lvalue. "l" pour "left" qui signifie gauche en anglais. Une expression qui ne peut apparaître seulement à droite d'une affectation est, elle, une rvalue. "r" pour "right" qui signifie droite en anglais. En effet, l'expression b + 1 ne peut pas être une lvalue car elle ne peut pas apparaître à gauche d'une affectation. Ça n'aurait aucun sens. Mais cette définition de la rvalue ne suffit pas pour comprendre la sémantique de déplacement. Il faut aussi ajouter qu'une rvalue peut être déplacée. Il existe deux types de rvalues qui peuvent être déplacées. Le résultat d'un calcul, ici a + b est une valeur sans nom sur le point d'expirer. Ce qui lui vaut aussi le nom de xvalue. "x" pour expirante. C'est une rvalue déplaçable. On peut d'ailleurs imaginer que a et b sont des objets et que l'opérateur "+" a été redéfini pour leur classe. Dans le cas d'une constante, ici 42, ou de façon très similaire pour le résultat d'une fonction qui retourne par valeurs. Nous avons des valeurs littérales aussi appelées rvalues pures, ou prvalues. Elles aussi représentent des rvalues déplaçables. Ces deux catégories de rvalues peuvent donc être déplacées et ainsi utilisées avec la sémantique de déplacement. Nous les verrons en action dans le chapitre suivant.

C++ : La sémantique de déplacement

Développez des classes compatibles avec la sémantique de déplacement en C++. Obtenez un code robuste et performant grâce à une utilisation pertinente de la sémantique move.

31 min (10 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :24 oct. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !