Avec les collections de QT tu auras un prix moindre sur les "mauvais" compilos qui sont moins forts pour effectuer des RVO et RNVO -- vu qu'avec les "bons" il n'y aura pas de copie. Tout le prolème est de savoir "est-ce que le compilo saura appliquer le R(N)VO dans cette fonction ?"
Par contre tu auras un prix permanent pour les accès -- en gros un surcout par itération, ou un surcout par appel à [] si je ne me trompe pas.
Cf l'article de linux mag pour un benchmark contre la STL de GCC
D'ici un paquet d'années, tu ne te poseras plus cette question -> arrivée des rvalue references en C++0x qui permettront d'avoir une sémantique de déplacement sur les conteneurs standard. Le COW comme technique d'optimisation des retours par valeur va fortement perdre de son intérêt.
PS: tes articles qui critiquent la STL, ils ont quel age ? Ils parlent de quelle implémentation et de quel compilo ?
Partager