Bonjour,
Une drôle d'idée vient de nous arriver : nous templatisons, et les petits amateurs que nous sommes se retrouvent à devoir redéfinir des typedef histoire d'essayer de sauver des lignes illisibles. Dans l'ancienne version, les typedef qui posent problèmes ressemblaient à ceux-ci :
Mais maintenant, la classe Node est elle-même un template, donc on essaye d'écrire des choses comme celle-là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //classe ItSegment template<class TNodeIterator> class ItSegment; //typedef pour la classe TitNode : typedef list<Node*>::iterator TitNode; //typedef pour la classe TitSegment typedef ItSegment<TitNode> TitSegment;
et ça ça nous pète au nez... avec des messages du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 //classe ItSegment template<class TLine,template<class TLine> class TNodeIterator > class ItSegment; //typedef pour la classe TitNode : template <class TLine> class TitNode{}; //spécialisé pour la classe Line template<> class TitNode<Line> { public: typedef list<Node<Line>*>::iterator Type; }; //typedef pour la classe TitSegment template<class TLine> class TitSegment {}; //spécialisé pour la classe Line template<> class TitSegment<Line> { public: typedef ItSegment<Line,list<Node<Line>*> >::iterator Type; };
Toute suggestion sera la bienvenue ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part erreur: type/value mismatch at argument 2 in template parameter list for template<class TLine, template<class TLine> classTNodeIterator> struct ItSegment
Merci tout plein !
Marc
Partager