Bonjour à tous,
Je ne m'explique pas ce problème :
(Je sais que je n'utilise pas T2 pour l'instant).
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 T1, class T2> class C { public: typedef T1 (*Fptr)(void); //La ligne importante Fptr fptr; }; int main() { C<void,void> c; return 0; }
Ce code fonctionne parfaitement. En revanche:
Ce code ne fonctionne pas, j'ai mis les erreurs en face des lignes que le compilateur incrimine.
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 template<class T1, class T2> class C { public: //T2 à la place de void pour le type de l'argument typedef T1 (*Fptr)(T2); //invalid parameter type `void' Fptr fptr; //invalid parameter type `void' }; int main() { C<void,void> c; return 0; }
C'est peut-être tout bête, mais j'aimerais savoir la subtilité qui empeche la 2ème version de fonctionner -_-'
Merci d'avance de votre aide...
Partager