Le COW n'est pas un gage de qualité pour tout le monde. Le seul intérêt que je lui vois, c'est de palier à l'absence de sémantique de déplacement dans la version courante du C++ (le C++0x introduira les rvalue references qui changeront la donne -- compter 15 ans avant que Qt en profite (volonté de supporter toutes les plateformes, même celles qui ne sont plus supportées par les fournisseurs de compilos)). Et juste pour cela : faire des retours de fonctions par valeur, on sort une usine à gaz, à savoir le COW.
> sort est une methode, pas une fonction externe
Et oui, sort s'applique aussi sur les tableaux, pas que sur les vecteurs ou les files. Pourquoi dupliquer le code ?
Une école tend à considérer que les fonctions ne doivent être membre qu'en dernier recourt -- je simplifie.
Visiblement, Stepanov aurait mis bien moins de choses en membre comme begin()/end() s'il avait pu faire ce qu'il voulait.
Cf ses notes sur la programmation: http://www.stepanovpapers.com/notes.pdf
[^] # Re: gcc lave plus blanc ?
Posté par lmg HS (site web personnel) . En réponse à la dépêche Sortie de GCC 4.3. Évalué à 4.
Le COW n'est pas un gage de qualité pour tout le monde. Le seul intérêt que je lui vois, c'est de palier à l'absence de sémantique de déplacement dans la version courante du C++ (le C++0x introduira les rvalue references qui changeront la donne -- compter 15 ans avant que Qt en profite (volonté de supporter toutes les plateformes, même celles qui ne sont plus supportées par les fournisseurs de compilos)). Et juste pour cela : faire des retours de fonctions par valeur, on sort une usine à gaz, à savoir le COW.
> sort est une methode, pas une fonction externe
Et oui, sort s'applique aussi sur les tableaux, pas que sur les vecteurs ou les files. Pourquoi dupliquer le code ?
Une école tend à considérer que les fonctions ne doivent être membre qu'en dernier recourt -- je simplifie.
Visiblement, Stepanov aurait mis bien moins de choses en membre comme begin()/end() s'il avait pu faire ce qu'il voulait.
Cf ses notes sur la programmation: http://www.stepanovpapers.com/notes.pdf
> std::string
souffre en effet d'un certain nombre de défauts.