Il faut aussi ajouter que le std::move est lié au Rvalue-reference. Cela permet de "convertir" une Lvalue-reference (pour le compilateur) en Rvalue-reference
Un autre exemple pourrait être (en se basant sur le tien), une fonction qui fait la moyenne
Tu auras le droit à un beau message d'erreur du compilateur (l'argument n'est pas un Lvalue-reference)
Quelle était la solution?
-Soit tu mettais le résultat de func dans une variable (une copie si il n'y a pas de RVO)
-Soit tu ajoutais la fonction suivante
[^] # Re: Intéressant
Posté par diorcety . En réponse à la dépêche Je crée mon jeu vidéo E09 : Techniques de C++11 appliquées au système à entités. Évalué à 1.
Il faut aussi ajouter que le std::move est lié au Rvalue-reference. Cela permet de "convertir" une Lvalue-reference (pour le compilateur) en Rvalue-reference
Un autre exemple pourrait être (en se basant sur le tien), une fonction qui fait la moyenne
Ça c'est bien mais essaye de faire ça
Tu auras le droit à un beau message d'erreur du compilateur (l'argument n'est pas un Lvalue-reference)
Quelle était la solution?
-Soit tu mettais le résultat de func dans une variable (une copie si il n'y a pas de RVO)
-Soit tu ajoutais la fonction suivante
Par contre la tu fais une copie.
La solution avec les Rvalue-references est d'ajouter la fonction:
Tu peux maintenant utiliser: