Sondage sur la STL - C++ - Programmation
Marsh Posté le 18-02-2003 à 17:16:51
perso j'aime bien les composants Borland quand je programme en Delphi, mais je dois reconnaître qu'en C++Builder il m'est arrivé d'utiliser la STL, et une fois qu'on pige le truc et qu'on arrive à relire ce qu'on écrit, c'est excellent
La syntaxe avec ces < > partout pour les templates c'est quand même pas ce qu'il y a de mieux
Marsh Posté le 18-02-2003 à 17:17:01
Je suis pas contre les topics ou il faut donner un avis sur un aspect quelconque de la programmation, ceci dit, ça serait bien si tu étayais ton avis avec quelques arguments dignes de ce nom...
Marsh Posté le 18-02-2003 à 17:28:18
Mes arguments ils sont tout simple :
Quel est l'intérêt des templates, plutôt qu'une classe de base CObject, surchargée par tous les éléments d'une API ? Pourrir la lisibilité du code ?
Et puis, cela mis à part, la STL n'est quand même pas tellement lisible je trouve.
En STL, on dirait que le code à été volontairement compliqué, des trucs tout bête avec les MFC sont vachement plus complexes à écrire en STL. Et puis j'ai trouvé aucune doc attrayante sur le STL, ça me saoule.
Marsh Posté le 18-02-2003 à 17:29:31
El_gringo a écrit : |
Avoir des conteneur typés et pas des sacs à merdes ou on est contraint de caster comme des cons.
Marsh Posté le 18-02-2003 à 17:35:32
El Gringo > je suis désolé, mais tu compares 2 choses totalement différentes. Comment peux tu comparer un ensemble de classes destinées à la création d'interfaces graphiques (MFC) à la STL ? Ca n'a strictement rien à voir... La STL apporte avant tout un ensemble de conteneurs destinés à manipuler des données, ce qui n'est pas du tout le but de la MFC. Donc merci de ne pas mélanger torchons et serviettes. Surtout que les MFC sont un mélange batard de C et C++.
Marsh Posté le 18-02-2003 à 17:39:04
Harkonnen a écrit : El Gringo > je suis désolé, mais tu compares 2 choses totalement différentes. Comment peux tu comparer un ensemble de classes destinées à la création d'interfaces graphiques (MFC) à la STL ? Ca n'a strictement rien à voir... La STL apporte avant tout un ensemble de conteneurs destinés à manipuler des données, ce qui n'est pas du tout le but de la MFC. Donc merci de ne pas mélanger torchons et serviettes. Surtout que les MFC sont un mélange batard de C et C++. |
Heuu, CString, CArray, CTimer, CFileFind, ...
tu crois que c'est quoi ?
Marsh Posté le 18-02-2003 à 17:41:30
kadreg a écrit : |
J'aime mieux caster comme un enculé et avoir de code lisible.
Marsh Posté le 18-02-2003 à 17:45:06
El_gringo a écrit : |
Le cast pose des problème de validitée du cast (sauf a jouer du narrowing ou du RTTI, mais là, le code vire au write-only), source de bug sans fin, de joyeuses fuites mémoire et autres emmerdes habituelles bien connues du programmeur C++.
Marsh Posté le 18-02-2003 à 17:46:11
kadreg a écrit : |
et le "dynamic_cast", c'est pareil ?
Marsh Posté le 18-02-2003 à 17:47:18
El_gringo a écrit : |
Oui. D'ailleurs le narrowing est souvent implémenté en dessous par un dynamic_cast.
Marsh Posté le 18-02-2003 à 17:50:23
j'ai pas encore étudié le sujet mais je reviens voter dès que j'en sais plus. J'en ai pour l'instant une toute petite idée, depuis que je lis quelques topics C++
Marsh Posté le 18-02-2003 à 17:51:08
El_gringo a écrit : |
La question n'est pas la ! Tu compares 2 choses qui n'ont rien à voir, c'est tout !
C'est comme si tu comparais une brique avec une maison !
Marsh Posté le 18-02-2003 à 17:56:56
Harkonnen a écrit : |
...Le fait est que, généralement, quand on utilise les MFC, on utilise pas la STL
Marsh Posté le 18-02-2003 à 18:33:49
a priori la STL est compatible sur tout OS (avec les dernieres version de compilateurs)...
Moi j'ai decouvert ça la semaine derniere..pas encore mis en pratique..mais dans le principe je touve ça assez top
Mais ce n'est que l'avis d'un newbie
@+
Marsh Posté le 18-02-2003 à 18:36:52
kadreg a *crit : |
Et puis, la STL c'est tres lisible. Je ne vois pas le mal qu'il y a avec ce code :
Code :
|
Marsh Posté le 18-02-2003 à 18:55:30
Je suis un peu géné car j'utilise à la fois la STL et les MFCs. Et même parfois en même temps !
En effet, les MFCs me sont indispensables pour faire des interfaces graphiques "évoluées" (ça permet d'aller tout de même beaucoup plus vite) mais je préfère les classes de la STL pour ce qui est "utilitaire" (vecteurs, map, strings...).
Par contre, il faudrait que j'essaie de me mettre à ATL qui (je crois) essaie de refaire les MFCs en utilisant les templates. Pour l'instant je m'en suis servi que pour faire des objets COM, mais il semble que l'on puisse s'en servir pour faire de vrais applications. Cela pourrait être un bon complément à la STL pour la programmation Windows. Quelqu'un a plus d'infos là dessus ?
Marsh Posté le 18-02-2003 à 20:01:13
Il me semble que ATL est un complément à MFC pour pouvoir créer facilement des composants COM.
Je ne crois pas que ce soit un remplaçant.
Marsh Posté le 18-02-2003 à 20:47:36
El_gringo a écrit : |
niveau généricité ce serait quand meme bien galére. pour une liste d'entiers, tu devrais créer une classe enrobante, ce qui alourdirait bien ton truc.
El_gringo a écrit : |
la STL est relativement lisible si tu fais un peu attention, et en plus comme ils ont normalisé les noms des méthodes, on s'y retrouve tres vite. et c'est pas parce que c'est plus simple à écrire que c'est plus puissant, plus souple.
El_gringo a écrit : |
la t'as du le faire expres pour ne pas trouver de docs bien foutues.
Marsh Posté le 18-02-2003 à 21:07:24
http://www.josuttis.com/libbook/idx.html
http://www.sgi.com/tech/stl/
http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
http://www.msoe.edu/eecs/cese/resources/stl/
http://directory.google.com/Top/Co [...] aries/STL/
Marsh Posté le 18-02-2003 à 21:30:09
Bon El_Gringo, je sais pas ce que tu nous a fait là, mais tu ne nous a pourtant pas habitué à troller comme ça
Tu n'avances aucun argument valable et surtout constructif, tu passes pour un boolay plus qu'autre chose et le peu d'arguments que tu donnes est très facilement contré...
C'est quoi ce bordel ?
Marsh Posté le 19-02-2003 à 12:42:08
HelloWorld a écrit : Il me semble que ATL est un complément à MFC pour pouvoir créer facilement des composants COM. |
Oups... En fait je pensais à la WTL (qui est une extension d'ATL) ! Je viens d'ailleurs de la télécharger et ça semble beaucoup plus léger que les MFC (juste 16 fichiers à inclure) et assez facile d'utilisation.
Marsh Posté le 19-02-2003 à 13:09:49
antp a écrit : perso j'aime bien les composants Borland quand je programme en Delphi, mais je dois reconnaître qu'en C++Builder il m'est arrivé d'utiliser la STL, et une fois qu'on pige le truc et qu'on arrive à relire ce qu'on écrit, c'est excellent |
Rien ne t'empêche de nommer ces types instanciés...
Un simple "typedef vector<int> IntVector;" suffirait même, dans le principe.
En fait, c'est même un pratique conseillée ; bien qu'elle soit très peu répandue en C++, c'est quelque chose que font quasi-systématiquement les programmeurs dans d'autres langages qui offrent la généricité.
Marsh Posté le 19-02-2003 à 13:10:59
BifaceMcLeOD a écrit : |
bah oui c'est ce que je fais, ça rend le truc super lisible (enfin ça reste tj du c++ ), mais malheureusement certains ne le font pas
Marsh Posté le 19-02-2003 à 14:14:13
Harkonnen a écrit : Bon El_Gringo, je sais pas ce que tu nous a fait là, mais tu ne nous a pourtant pas habitué à troller comme ça |
Pardon Monsieur Harkonnen, je recommencerai plus !
Non, mais en fait, ce poste, c'était surtout pour savoir ce que pense les développeurs C++ de la STL. Parce que moi, ça fait un an et demi de que fait du C++, sans STL.
Jusqu'au jour ou g repris un projet en C, dans lequel je n'pouvais pas utiliser les MFC. G donc découvert la STL, et g été déstabilisé. J'y comprend pas grand chose. Par exemple, pour les attributs de <vector>, T0, T1, T2, T3, c quoi ? Pourquoi des noms aussi peu explicites ?
Marsh Posté le 19-02-2003 à 15:33:05
El_gringo a *crit : |
On a pas du utiliser la meme STL alors. Je ne sais absolument pas ce que peuvent etre ces membres.
Marsh Posté le 19-02-2003 à 15:34:17
Kristoph a écrit : |
C'est les noms des paramètres des différents template, mais je vois pourquoi il en parle, sauf à écrire la STL, on les voit pas.
Marsh Posté le 19-02-2003 à 15:35:11
moi non plus
edit: ou t'as du mal avec les templates?
Marsh Posté le 19-02-2003 à 15:35:48
Kristoph a écrit : |
c surement que j'comprend rien, mais voici :
Code :
|
Marsh Posté le 19-02-2003 à 15:39:00
El_gringo a écrit : |
T0 est un type interne. Pour toi, utilisateur de la STL, seule la partie droite t'interresse : iterator.
Marsh Posté le 19-02-2003 à 15:45:03
si tu veux je te balance du code Java non documenté et on va voir si ca te réussi mieux.
en plus tu peux pas t'en sortir si regardes des fragments de codes: commence par maitriser l'interface public au lieu de partir direct dans la triperie.
Marsh Posté le 19-02-2003 à 15:47:45
El_gringo a *crit :
|
La STL a, de part sa conception, la particularite qu'il ne faut surtout pas mettre le nez dans ses fichiers .h si possible Utilise une bonne doc plustot.
Marsh Posté le 19-02-2003 à 15:59:52
++Taz a écrit : si tu veux je te balance du code Java non documenté et on va voir si ca te réussi mieux. |
Ben, j'commence par ce que je vois dans la doc !
ce bout de code est vers le début de la description de <vector>
Marsh Posté le 19-02-2003 à 16:08:29
la STL c'est super.
Puis de toute facon les MFC c'est pas portable.
Marsh Posté le 19-02-2003 à 16:58:17
El_gringo a écrit : |
http://www.sgi.com/tech/stl/Vector.html
je vois pas le moindre bout de code faisant référence à l'implémentation
Marsh Posté le 19-02-2003 à 17:08:43
kadreg a écrit : |
[+++]
passke quand t'as un taurreau énervé dans ta collection de carottes, t'as pas l'air con avec ton épluche-légumes et ton opérateur de cast.
Marsh Posté le 19-02-2003 à 17:11:21
++Taz a écrit : http://www.sgi.com/tech/stl/Vector.html |
http://www.dinkumware.com/manuals/ [...] ector.html
...et là je vois ce que j'ai copié tout à l'heure !
Marsh Posté le 19-02-2003 à 17:17:02
El_gringo a écrit : Mes arguments ils sont tout simple : |
heu....
les templates et partir d'une classe de base ça n'a rien à voir mais rien à voir du tout.
Marsh Posté le 18-02-2003 à 17:13:44
Je trouve que la STL est horriblement pas attrayante, elle donne plutôt envie de s'enfuire. La moindre petite chose y a une écriture horrible, repoussante au possible
Message édité par El_gringo le 18-02-2003 à 17:14:45