lundi 8 juillet 2013

Les dangers de la move semantics

Voyez donc cette question que je pose sur Stackoverflow: en écrivant mes constructeurs dans le style moderne, passage des arguments copiés par valeur et déplacement, je me suis rendu compte qu'il était extrêmement facile d'utiliser par erreur la valeur déplacée dans le corps du constructeur. Comme les commentateurs du post l'ont noté, il n'existe pas vraiment de parade à ce problème, il faut juste faire très attention à ce qu'on fait...

Ce genre de bug va se multiplier, j'imagine, et sera probablement particulièrement difficile à débugger: l'on peut imaginer, dépendant de l'implémentation de chaque type, que l'on verra parfois l'ancienne valeur, parfois une valeur non initialisée, et parfois de beaux crashs. Pas de quoi jeter bébé avec l'eau du bain, mais il faudra ouvrir l’œil (comme si l'on avait déjà pas assez à penser lorsque l'on code en C++...).

Aucun commentaire: