Bonjour à tous
Je travaille actuellement sur un projet de gestion de States pour SFML
J'ai récemment essayé d'adapté le framework du livre sur la SFML mais le problème était qu'il n'était pas trop possible de faire partager les informations du jeu entre plusieurs states, car le système de Context est propre au framework et donc pas vraiment pratique...
Du coup j'ai voulu implémenter ça avec des templates.
J'ai une petite erreur "undefined reference"...
Je sais pourquoi j'ai cette erreur :
J'ai deux classes et chacune utilise des templates que je déclare donc dans le .hpp de ma classe.
Et chacune des fonctions utilisant des templates à besoin d'inclure l'autre pour travailler avec...
State.hpp :
class StateManager;
class State
{
template<typename T>
void send(T object);
template<typename T>
void receive(T object);
};
#include "State.inl"
State.inl :
template <typename T>
void State::send(T object)
{
mMgr->share<T>(object);
}
template <typename T>
void State::receive(T object)
{
//
}
StateManager.hpp :
class State;
class StateManager
{
public:
template <typename T>
void share(T object);
};
#include "StateManager.inl"
StateManager.inl :
template <typename T>
void StateManager::share(T object)
{
state->receive(object);
}
Voilà je vous ait réduit les fichiers au max, en laissant tout ce qui devrait être utile
Si quelqu'un pourrait m'aider ça serait plutôt cool car le projet serait utilisable par tout le monde
Le projet est actuellement sur GitHub et c'est la dernière fonctionnalité que je prévois d'ajouter pour le moment
Merci d'avance :
https://github.com/Cmdu76/CmState