Mal, parce que les conteneurs sont déjà RAIIens. Du coup les allouer comme ça, cela brise les bonus de l'objet. Tu connais auto_ptr, c'est bien (car tu vois donc où je voulais en venir -- accessoirement, deux smart-ptr en paramètres sont un problème, cf XC++/GOTW/ou artima je ne sais plus -> Law Of the Big Two). Avec la prochaine norme, on y gagnera le déplacement (et donc encore moins de raisons valables d'allouer des conteneurs via new).
Oui, pour le slicing. Le rapport, c'est que le "taboo" est lié à un cas d'utilisation mal venu. Les conteneurs sont prévus pour être manipulés par valeur.
Le slicing est réel. Après l'autre exemple de non supplantation de [] est aussi très pertinent (du ridicule de la surcharge).
Mais ... pourquoi s'échine-t-on à parler des mauvaises solutions ? Au lieu de l'extension par fonction libre, ou des STL checkées ?
COTS:component off-the shelves ; en gros un truc externe payant (lib, programme, etc), mais régulièrement étendu à "truc externe" au projet.
[^] # Re: works for me
Posté par lmg HS (site web personnel) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 1.
Mal, parce que les conteneurs sont déjà RAIIens. Du coup les allouer comme ça, cela brise les bonus de l'objet. Tu connais auto_ptr, c'est bien (car tu vois donc où je voulais en venir -- accessoirement, deux smart-ptr en paramètres sont un problème, cf XC++/GOTW/ou artima je ne sais plus -> Law Of the Big Two). Avec la prochaine norme, on y gagnera le déplacement (et donc encore moins de raisons valables d'allouer des conteneurs via new).
Oui, pour le slicing. Le rapport, c'est que le "taboo" est lié à un cas d'utilisation mal venu. Les conteneurs sont prévus pour être manipulés par valeur.
Le slicing est réel. Après l'autre exemple de non supplantation de [] est aussi très pertinent (du ridicule de la surcharge).
Mais ... pourquoi s'échine-t-on à parler des mauvaises solutions ? Au lieu de l'extension par fonction libre, ou des STL checkées ?
COTS:component off-the shelves ; en gros un truc externe payant (lib, programme, etc), mais régulièrement étendu à "truc externe" au projet.