mot clef: typename - C++ - Programmation
Marsh Posté le 29-07-2003 à 00:50:32
bien ceci
Marsh Posté le 05-10-2003 à 13:44:33
petites corrections, nouvel exemple. les explications sont toujours aussi approximatives, mais je crois que c'est la seule façon de parler aux débutants
Marsh Posté le 07-10-2003 à 04:40:38
C est le problem que javais dans ma template, car j utilisai dans cette template une structure lie au <T>
warning mais sa compile quand meme.
Marsh Posté le 07-10-2003 à 08:06:00
Taz a écrit : et ? |
et que javasi pas compris
Marsh Posté le 29-07-2003 à 00:41:07
voici le mot clef typename, que trop peu connaissent.
typename A
permet de spécifier au compilateur que A est un type (ce qui n'est pas toujours évident)
2 utilisations:
* en remplacement dans les paramètre de types dans les déclaration des templates
peut s'ecrire avec préférence
retenez-le, histoire de ne pas être surpris
* pour permettre au compilateur certaines résolutions de type. ceci concerne les templates: vous avez une classe template<typename T> et dans cette classe, vous souhaitez manipuler un sous-type (pas au sens de l'héritage, je retrouve pas le mot) de T, T::sous_type. Très bien, mais ça ne passera pas à la compilation, votre compilateur va perdre les pedales: il ne connait même pas T !!!
alors à vous de lui spécifer que T::sous_type est bien un type.
pour des raisons historiques, class est trop souvent utilisé, et pose souvent problème aux débutants puisque class à déjà un autre emploi (est ce que ça va marcher avec mes struct, mes int ??)
typename porte bien son nom, utilisez le.
petit exemples à tester
autre exemple
Message édité par Taz le 19-04-2004 à 23:14:47