typedef montype<T> monnouveautypegenerique ?? - C++ - Programmation
Marsh Posté le 09-11-2008 à 15:07:17
mot-clé typename
Code :
|
Marsh Posté le 09-11-2008 à 15:21:05
Salut,
merci de prendre le temps de repondre .
Lorsque je met ce que tu m'a indiqué, j'ai cette erreur du compilateur:
error: expected nested-name-specifier
error: invalid declarator before ‘monnouveautypegenerique’
Une idée?
je precise que c'est à l'interieur d'une template <class T> et que j'ai mis le type def dans la classe, sinon j'avais les erreurs suivante:
error: using ‘typename’ outside of template
error: ‘T’ was not declared in this scope
error: template argument 1 is invalid
error: expected nested-name-specifier
merci.
Marsh Posté le 09-11-2008 à 15:59:52
Salut, merci à toi.
Voila la partie du code concernée par le souci.
Si par ailleurs il y a une autre facon de gerer ca, je suis ouvert;
c'est jusqte que celle-ci me semble etre faite pour ce genre de cas.
Citation : /* |
edit:
je precise que l'erreur de nested-name est obtenue une fois que j'ai remplacé par CompteEnBanque<T> par CmpteBque à l'initialisation de la liste...
Marsh Posté le 09-11-2008 à 16:22:15
faut aussi le mettre ou il faut
Code :
|
Marsh Posté le 09-11-2008 à 16:32:57
ca passe .
ca peut paraitre evident une fois qu'on connait, mais avant .
Grand merci!
Marsh Posté le 10-11-2008 à 09:56:03
durk a écrit : ca passe . |
Bah c'est le niveau 1 de la bonne maitrise des patrons. Si on t'enseigne pas ça tout de suite, paye ton désastre car les types dépendants, c'ets la quintessence du template.
Marsh Posté le 09-11-2008 à 15:04:07
Bonjours à tous,
Voila je rencontre un petit probleme.
J'ai une classe generique de type "montype<T>".
Je souhaite à present dans une autre classe creer une lsite d'instance montype.
Le compilateur accepte la syntaxe suivante:
std::list<montype<T> > listeDeMonType;
Mais lorsque je veux parcourir cette liste en creant un iterateur j'ai un erreure:
std::list<montype<T> >::const_iterator lit=listeDeMonType.begin(); "expected `;' before ‘lit’"
J'essaye à present de contourner le probleme en utilisant un typedef generique qui ressemblerait à ca:
typedef montype<T> monnouveautypegenerique
Biensur ca ne fonctionne pas aussi je voudrais savoir si l'un de vous aurait une solution à ce probleme?
Merci