Je trouve que c'est un peu un argument de mauvaise foi dans la mesure où ce coût est de très loin négligeable par rapport à une copie. Si on en vient à ce genre de détails, c'est de la micro-optimisation, et ça les compilateurs le font bien mieux que les développeurs. On peut toujours trouver des cas tordu, mais ça reste vrai presque tout le temps.
Si tu veux "éviter" le coût d'une sémantique de déplacement, tu vas complexifier ton code (rajouter des risques d'erreurs, maintenance plus difficile) pour gagner des cacahouètes, ou même probablement rien vu ce que font les compilos moderne. Honnêtement, la plupart des devs sont loin de se rendre compte à quel point les optimisations compilo sont plus malines qu'eux. Ne serais-ce que d'un point de vue ego, ce n'est pas toujours facile d'admettre qu'une machine fera mieux, et pourtant, en ce qui concerne la compile, c'est quasiment toujours le cas. Il y a une quantité énorme de devs qui se croient malins en écrivant du code "optimisé" alors qu'en fait, ça ne sert juste qu'à le rendre moins lisible
D'accord mais cet état de fait est complètement indépendant de la manière de récupérer le vector non ? Je ne vois pas trop le rapport avec le débat sur la copie/mouvement.
Partager