RAD Studio C++ 2007
Je débute avec les templates !
Je sais qu'à partir de 2009, avec l'ajout des génériques en Delphi, il est possible d'utiliser une TList<T> (generics.collection) qui reprend les méthodes de la TList habitudelle (classes)
J'ai cru comprendre qu'utiliser les génériques Delphi par des Header de Template C++, cela semblait pas être très très joli !
Que pensez vous de la STL list<> (Dinkumware) ?
Quelle la différence entre std::list et std::vector, juste la possibilité d'utiliser [] ?
en fait, j'ai pas envie d'écrire ce genre d'horreur : TfrmMain::ShowContacts() et la vilaine répétition de reinterpret_cast
une petite surcharge de "void* Items[]" en "struct* Items[]" et cela inclue le cast dans l'accesseur !
j'ai cru comprendre que la list provoquait la libération des éléments (voir la doc de la méthode erase : "Erasing N elements causes N destructor calls"), cela ne fonctionne que sur les classes ? est-ce cela supporte les struct ? les TObject ?
Je ne veux pas libérer mes items, je veux juste stocker des struct*, et lorsque je vide la liste, je veux juste qu'il les oublie (ces struct* viennent d'ailleurs dans le code, tout est déjà nickel à ce sujet)
EDIT : D'après mes Tests, cela n'appel le destructeur si <class*>, cela appel le constructeur de copie et le destructeur sur <class>
Rien que trouver qu'il fallait écrire "std::list" et pas juste list tout court, j'ai bien du chercher une bonne minute !
Enfin, migration sur XE prévue, j'aimerais prévoir le coup et remplacer rapidement std::vector par TList<> (logique autant utilisé la VCL, sinon inutile d'être sous RAD Studio)
Pour le moment, je pars sur une TList + Accesseurs, par ceque la std::list ne me convient pas mais j'aimerais connaitre le ressenti à ce sujet des experts C++ Builder !
Idem avec DynamicArray<> par rapport à la TList ou TList<> ?
Partager