Bonjour,
Tout d'abort, non, ce n'est pas le problême de la séparation de la source et du header ; je suis déja passé par lâ, tout le code est dans un seul fichier.h
Donc j'ai un code qui ressemble de loin à cela:
Les methodes de la classe B ont besoin d'acceder à la variable truc, mais le linker me dit des affaires du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 template <typename T> class A { public: class B { ... } ; ... static int truc ; } ;
Mais le plus rigolo c'est que il n'affiche des erreures que pour CERTAINES methodes de la classe B accedant à truc. Peut-etre qu'il limite le nombre d'erreur affichées ? Sinon c'est vraiment super-bizarre. Quelqu'un à une idée ? Voici un programme complet qui reproduit l'erreur:in function A<T>::B::func() : undefined reference to A<T>::truc
Merci
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 #include <iostream> template <typename T> class A { public: class B { public: int func() { truc = 3 ; return truc ; } } ; B b ; static int truc ; } ; int main() { A<int> a ; std::cout << a.b.func() << std::endl ; return 0 ; }
Partager