Bonjour,
J'ai un soucie avec mon code: J'ai une class template ( ThirdPersonCamera ) qui est écrite dans un .h.
Cette class possède une fonction addToScene() qui n'utilise pas le template mais qui utilise un objet Scene que je ne peux pas inclure dans le ThirdPersonCamera.h car cela cause une inclusion cyclique du faite que Scene.h inclu deja ThirdPersonCamera.h:

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
22
23
24
25
26
27
28
29
30
31
32
33
ThirdPersonCamera.h
       class Scene;
       template <class T>
	class ThirdPersonCamera : public Camera
	{
		public:
            ThirdPersonCamera(std::string name, Scene* scene, T* target)
            {
                init(name, scene, Vector3(50,10,50), target->getPosition());
                mTarget = target;
 
            }
 
            ~ThirdPersonCamera()
            {
 
            }
 
            void syncRenderablesPhysics(void)
            {
 
            }
		protected:
                  void addToScene(Scene* scene)
                 {
                      scene->addActor<ThirdPersonCamera>(this);
                  }
 
		private:
            T* mTarget;
 
	}
error: invalid use of incomplete type ‘struct Scene’|
j'ai essayé de mettre dans mon cpp:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 #include "ThirdPersonCamera.h"
#include "Scene.h"
           void ThirdPersonCamera::addToScene(Scene* scene)
            {
                scene->addActor<ThirdPersonCamera>(this);
            }
/error: ‘template<class T> class ThirdPersonCamera’ used without template parameters|
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include "ThirdPersonCamera.h"
#include "Scene.h"
 
    template <class T>
    void ThirdPersonCamera<T>::addToScene(Scene* scene)
    {
        scene->addActor<ThirdPersonCamera>(this);
    }
]+0x10)||undefined reference to `
ThirdPersonCamera<AnimatedMesh>::addToScene(Scene*)'|
Si quelqu'un a une idée
merci