Qt apporte ici une grande nouveauté par rapport au C++ standard : la version utilisant les itérateurs n’est pas extrêmement lisible, en comparaison avec la version permise par Qt.
Ceci sera-t-il corrigé par la nouvelle version du C++ ? Je n’en ai personnellement jamais entendu parler. Les conteneurs seraient-ils les grands oubliés de ce nouveau standard ? D’ailleurs, n’était-il pas plus logique de proposer cette construction avant ?
Ceci porte à réflexion.
Si les conteneurs ne bénéficient pas d’une manière standard d’une méthode extrêmement facile et très lisible, n’est-ce pas un signe de non-reconnaissance ? Les enfants mal-aimés du C++ ? Pourquoi en est-il ainsi ? Le concept est-il toujours utile, ou bien d’autres solutions sont-elles à préférer ? Est-il toujours adapté au contexte actuel (les dernières spécifications C++ ont à peu près 10 ans) ? Qu’y manque-t-il encore ?
En conséquence, Qt possède des versions réécrites des conteneurs de la STL. À l’époque, ils y étaient obligés : les STL fournies par les compilateurs ne supportaient pas forcément très bien les conteneurs standard. Ils en ont profité pour ajouter de nouvelles fonctionnalités, comme foreach. Ont-ils bien fait ? Ont-ils fait mieux que la spécification ? Qu’est-ce qui les distingue de cette spécification ? Leur performances ? Leur sûreté ? Leur efficacité ?