template vs #define - C++ - Programmation
Marsh Posté le 16-05-2009 à 18:04:36
Les tempaltes sont plus faciles à maitnenir, ne sont pas sujet au probleme de multiple definition des macros, respectent les namesapce et l'encapsulation.
Apres si t'aime ecrire du caca avec des macros, on va pas t'en empecher. Tu viendras juste couiner plus tard quand tu utiliseras une lib tierce qui va chier sur tes macros en silence.
Et dans ton exemple avec macros, tu fais comment pr avoir 2 instances de ta classe avec deux CONFIG different ?
Marsh Posté le 16-05-2009 à 18:08:49
Effectivement ça fait beaucoup d'arguments... tu as évoqué les namespace, tu peux m'en dire (en deux mots) un peu plus à ce sujet, en quoi les templates respectent les namespace (et non les #define)? ty
Marsh Posté le 16-05-2009 à 18:11:32
une macro est défini au niveau des symboles textes et ne respectent pas l'encapsulation des types par les namespaces. en gros impossible de structurer les macros par modules.
Marsh Posté le 16-05-2009 à 18:14:20
hum je vois oui, d'ailleurs je me rends que je n'utilise jamais les namespace, et dans ma boite même constat, c'est une erreur ? Il est de bon usage de systématiquement créer ces classes dans un namespace ? (je dévie un peu du sujet principal mais ça m'intérèsse et tes réponses me conduisent à ces questions...)
Marsh Posté le 16-05-2009 à 18:42:16
c'est toujours bien d'avoir un truc modulaire qui évite les conflits de noms. Le jour ou ton code de math va entrer en conflti avec ton code de simu car les deux définissent un truc qui s'appelle matrix dans le namespace global ... vous serez frais.
Marsh Posté le 16-05-2009 à 17:43:09
hi,
vs
Au final je me rends compte que dans un cas comme celui ci on arrive au même résultat en utilisant un simple et bête #define,
sauf que le code à écrire est beaucoup plus "léger" !
QUel est l'intérêt d'avoir recours à l'arsenal des Template? C'est juste pour que des vérif soit faite àla compil ?! si oui, ça me parait bien léger...
PS:c'est peut être une question con...ya peut être un GROS truc que j'oublie,auquel cas je serais ravi de l'avoir en tête...
Merci.
Message édité par Glock 17Pro le 16-05-2009 à 17:56:12