Je possède ce code dans un en-tête (modifié):classes de modèles dérivés et spécialisés qui contiennent les uns des autres
template <int i> class A {};
template <> class A <1> { B<1> _b; };
template <int i> class B : public A <i> {};
template <> class B <1> : public A <1> {};
Et utiliser en quelque sorte comme ceci:
#include "template_A_B.h"
int main()
{
A<1> a;
B<1> b;
return 0;
}
Il est évident que je reçois l'erreur de compilation :
error: ‘B’ does not name a type
Si j'ajoute une déclaration avant de B comme
template <int i> class B;
Je reçois
error: field ‘_b’ has incomplete type
lors de la compilation.
J'ai essayé aussi déclarer avant A et de commutation de l'ordre des définitions de classe et obtenir:
error: declaration of ‘struct A<1>’
Qu'essayez-vous d'accomplir? Toute utilisation pratique de ce type de classe? – Nawaz
@Nawaz: A est une classe de tableau pouvant contenir une classe B dérivée en tant qu'élément. – steffen