Bonjour, je suis nouveau sur le forum. Je ne savais pas trop où poster
ce message: j'espère ne pas m'etre trompé de rubrique...

J'ai un petit problème avec la classe singleton. Voici le code:


******************************************************

//=========================================
// Classe SINGLETON
//=========================================


#ifndef SINGLETON_H
#define SINGLETON_H


template <class T>
class Singleton
{

public :

static T& Instance() // Instanciation & accession de type reference
{
if (!m_Inst) m_Inst = new T;
return *m_Inst;
}

static T* PtrInstance() // Instanciation & accession de type pointeur
{
if (!m_Inst) m_Inst = new T;
return m_Inst;
}

static void Destroy() // Liberation des ressources
{
delete m_Inst;
m_Inst = NULL;
}

protected :

Singleton() {}

~Singleton() {}

private :

static T* m_Inst; // Instance de la classe

Singleton ( Singleton & ) ; // Supression du constructeur de copie
void operator = (Singleton &) ; // Supression de la copie
};

template<class T> T* Singleton<T>::m_Inst = NULL; // ce qui pose probleme

#endif

***********************************************************

Voila; ce code est sensé marcher puisque je l'ai déja utilisé à de
tres nombreuses reprises pour dévellopper de petits programmes.

Le hic, c'est que j'ai changer de compilateur pour pouvoir utiliser
Ogre (un moteur 3D)

en faisant un simple #include du code ci dessus j'ai le message d'erreur
suivant:

"error: expected initializer before '<' token"

cette erreur ce ratache à la ligne de code:

"template<class T> T* Singleton<T>::m_Inst = NULL;"


Je ne sais pas trop comment faire pour régler ce problème;

voici le compilo et l'EDI que j'emploi:

Code::blocks Nightly build

gcc core 3.4.5
g++ 3.4.5


En fait, c'est la configuration décrite dans le lien suivant
http://www.ogre3d.org/wiki/index.php/CodeBlocks_MingW_STLPort



merci d'avance pour vos réponses

@+