Bonjour,
Je viens de passer de Windows a Linux et donc de VC++ a gcc et je suis etonné de voir que le code suivant compile avec VC++ mais pas avec gcc:
L'erreur est : "error: `i' undeclared (first use this function)" (sur la ligne "void f() { i=0;}"). Si on enleve les templates ca marche evidemment, de meme si on ecrit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 template <class X> class A { protected: int i; }; template <class X> class B: public A<X> { puclic: void f() { i=0;} };
Mais je trouve cette dernière solution un peu pénible. Aurais-je loupé quelque chose ? Il y a-t-il une option mistique de gcc a activer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part void f() { A<X>::i=0;}
Vorl
Partager