Je tente d'utiliser un typedef d'une sous-classe dans mon projet, j'ai isolé mon problème dans l'exemple ci-dessous.
Est-ce que quelqu'un sait où je me trompe?
template
class A {
public:
//Pourquoi cela pose-t-il problème?
void action(typename Subclass::mytype var) {
(static_cast(this))->do_action(var);
}
};
class B : public A {
public:
typedef int mytype;
B() {}
void do_action(mytype var) {
// Faire quelque chose
}
};
int main(int argc, char** argv) {
B myInstance;
return 0;
}
**Voici la sortie que j'obtiens:
sean@SEAN-PC:~/Documents/LucadeStudios/experiments$ g++ -o test test.cpp
test.cpp: In instantiation of ‘A’:
test.cpp:10: instantiated from here
test.cpp:5: error: invalid use of incomplete type ‘class B’
test.cpp:10: error: forward declaration of ‘class B’**