Templates -> problème d'include
Bonjour, j'ai codé et tente de compiler quelques classes template pour gérer Points, Vecteurs, Droites, etc ... en 2D.
En tentant de mettre chaque classe dans un fichier hpp, impossible de trouver une astuce pour compiler, il me dit toujours que l'objet truc n'a pas été défini, etc ... Le fait est que j'arrive très bien à compiler en mettant tout mon code dans un seul fichier énorme, donc voici la structure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #ifndef TRUC
#define TRUC
template <typename T>
class Line;
template <typename T>
class Vector
{
public :
//defs des méthodes de Vector, utilisant entre autre des paramètres de type const Line<T>&
};
template <typename T>
class Point
{
public :
//idem -> utilise des const Line<t>&
};
template <typename T>
class Line
{
public :
//méthodes de Line
Vector<T> vector;
Point<T> point; //attributs publics
};
//et ici, toutes les méthodes et surcharges d'opérateurs
//sachant que celles de Vector utilisent celles de Line
//celles de Point utilisent Vector et Line
//celles de Line utilisent Vector et Point |
Voilà, je vois pas comment séparer le tout en mettant comme d'habitude, une classe dans un fichier ....
Y-a-t-il une méthode pour organiser ses template ?
PS : j'ai déjà séparé code source et définition en utilisant l'astuce du fichier .tpp (lien), et en metant #include "Vector.tpp" à la fin de la définition de Vector,
mais ça ne change pas grand chose au problème ....