Bonsoir,

Un problème tout bête, mais je ne vois vraiment pas d'où ça vient, j'ai pourtant tourné et retourné tout ça sous tous les angles, vérifié si ça ne découlait pas d'une erreur sur les lignes d'avant...

Le code en résumé :
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
21
template <typename T>
class sarray {
	struct node {
		/* tout un tas de trucs */
	};
	/* idem */
	node* getNode(const T&) const;
	node* getNodeAt(unsigned) const;
	void removeNode(node*);
	/* etc */
};
 
template <typename T>
node* sarray<T>::getNode(const T& e) const { /* ligne 178 */
	/* definition */
}
 
template <typename T>
node* sarray<T>::getNodeAt(unsigned index) const { /* ligne 189 */
	/* definition */
}
donne ces erreurs, avec gcc 4.1.2, sous linux (une ubuntu 6.10, mais ça on doit s'en moquer pas mal, non ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sarray.h:178: error: expected constructor, destructor, or type conversion before ‘*’ token
sarray.h:189: error: expected constructor, destructor, or type conversion before ‘*’ token
Sachant qu'en remplaçant "node*" par "sarray<T>::node*" ne change rien.

Cela vient-il de gcc 4.1.2 (donc faut il repasser à gcc 3.3.4 ?) ou d'un assemblement tordu de types qui n'auraient pas dû être imbriqués ?

Merci d'avance pour vos réponses et votre temps