Wednesday, May 04, 2011

Iteraatooor ... Giv'me Innformationnn.

Donc, se donner un objet représentant "une position dans une séquence" sur lequel il soit possible de faire les opérations habituelles "avancer à l'élément suivant" ou "obtenir le contenu de l'élément actuel" comme si on avait affaire à un "bon vieux pointeur dans un tableau C", c'était l'idée de std::{whatever}::iterator.

Si c'est sympa à la base (surtout pour ceux qui n'ont jamais fait de programmation fonctionnelle et pour qui les manipulations de listes à coup de grep ou map semblent occultes), en revanche, ça donne parfois des effets troublants dans la mesure où l'itérateur risque (s'il y a la moindre faille dans votre vigilance) de parcourir un objet qui n'existe plus.

Du moins, c'est l'explication la plus probable des fantaisies que j'observe dans mon éditeur d'animations.

No comments: