OVH Cloud OVH Cloud

Probleme de compilation

2 réponses
Avatar
Zulfukar Arslan
Bonjour à tous,

Je vais essayer d'être le plus clair possible.
J'ai 3 classes template:

####################################################
La premiere:

template<class A, class B>
class FirstClass
{
public:

vector<SecClass<A, B> > vector_;

public:

SecClass<A, B>& operator[](string type);
};

####################################################
La deuxieme:

template<class A, class B>
class SecClass
{
protected:

vector<EncoreUneAutreClasse<A, B> > vector_EncoreUneAutreClasse_;

public:

EncoreUneAutreClasse<A, B>& operator()(string field);
EncoreUneAutreClasse<A, B>& operator()(int i);

};
####################################################

Dans la premier classe, il y a un appel à la deuxieme classe
sous la forme:

vector<SecClass<A, B> > vector_;

Malheureusement, le compilateur n'aime pas du tout (gcc 3.3.5). Voici le
message qu'il me renvoie:

"erreur d'analyse syntaxique before `,' token"

Je ne comprends pas, dois-je inclure les uns derriere les autres mes .h
ou yatil un autre truc?

Merci pour les réponses.

2 réponses

Avatar
thierry nivon
Zulfukar Arslan wrote:
Bonjour à tous,

Je vais essayer d'être le plus clair possible.
J'ai 3 classes template:

####################################################
La premiere:

template<class A, class B>
class FirstClass
{
public:

vector<SecClass<A, B> > vector_;

SecClass n'est definie que par la suite

Donc, a priori, mettre la decl de la seconde en premier
public:

SecClass<A, B>& operator[](string type);
};

####################################################
La deuxieme:

template<class A, class B>
class SecClass
{
protected:

vector<EncoreUneAutreClasse<A, B> > vector_EncoreUneAutreClasse_;

public:

EncoreUneAutreClasse<A, B>& operator()(string field);
EncoreUneAutreClasse<A, B>& operator()(int i);

};
####################################################

Dans la premier classe, il y a un appel à la deuxieme classe
sous la forme:

vector<SecClass<A, B> > vector_;

Malheureusement, le compilateur n'aime pas du tout (gcc 3.3.5). Voici le
message qu'il me renvoie:

"erreur d'analyse syntaxique before `,' token"

Je ne comprends pas, dois-je inclure les uns derriere les autres mes .h
ou yatil un autre truc?

Merci pour les réponses.


Avatar
Zulfukar Arslan
Oui, a priori il y a un ordre dans la decl des classes. Merci

thierry nivon wrote:


Zulfukar Arslan wrote:

Bonjour à tous,

Je vais essayer d'être le plus clair possible.
J'ai 3 classes template:

####################################################
La premiere:

template<class A, class B>
class FirstClass
{
public:

vector<SecClass<A, B> > vector_;

SecClass n'est definie que par la suite

Donc, a priori, mettre la decl de la seconde en premier

public:

SecClass<A, B>& operator[](string type);
};

####################################################
La deuxieme:

template<class A, class B>
class SecClass
{
protected:

vector<EncoreUneAutreClasse<A, B> > vector_EncoreUneAutreClasse_;

public:

EncoreUneAutreClasse<A, B>& operator()(string field);
EncoreUneAutreClasse<A, B>& operator()(int i);

};
####################################################

Dans la premier classe, il y a un appel à la deuxieme classe
sous la forme:

vector<SecClass<A, B> > vector_;

Malheureusement, le compilateur n'aime pas du tout (gcc 3.3.5). Voici
le message qu'il me renvoie:

"erreur d'analyse syntaxique before `,' token"

Je ne comprends pas, dois-je inclure les uns derriere les autres mes
.h ou yatil un autre truc?

Merci pour les réponses.