Le meilleur article que je connaisse sur la question, c'est
celui-ci (attention, c'est du costaud, il fait presque trente pages ! A digérer petit à petit.)
Le seul problème, c'est qu'il a été écrit avant un changement assez important sur la manière dont les références peuvent se binder.
En résumé :
Avant : règles hyper complexes, détaillées dans l'article.
Entre temps, des problèmes de sécurité ont été découverts du à ces règles (si je me souviens bien, il pouvait y avoir dans certain cas des move silencieux).
Maintenant : règle beaucoup plus strictes, et beaucoup plus simple, à savoir :
Les reference & ne peuvent se binder qu'avec des lvalue.
Les reference && ne peuvent se binder qu'avec des rvalues.
Aucune conversion implicite n'est autorisée.
Je suis un peu dans le même cas.

La plupart des articles se focalise beaucoup sur le coté technique. Il est difficile de se faire une idée des pratiques qui émergeront de tout ça.
D'ailleurs je suis curieux. Florian ? Pourrais-tu détailler un peu dans quel cadre tu utilises la sémantique de mouvement ? Un exemple réel serait surement plus parlant.... Car de mon coté je n'arrive pas vraiment à imaginer des cas d'utilisation où l'on aurait besoin de "transférer" des objets non-copiables.
Partager