bonsoir, petite question qui me taraude l'esprit, est ce qu'on ne pourrait pas résoudre le problème du double check de (http://come-david.developpez.com/tut...page=Singleton) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
template <class T>  T* Singleton<T>::Get()
{
    if(m_i==0) //Premier check
    {
        Lock lock
        if(m_i==0) //Second
        {
            m_i=new T();
        }
    }
    return m_i;
}
avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
template <class T>  T* Singleton<T>::Get()
{
    if(m_i==0) //Premier check
    {
        Lock lock
        if(m_i==0) //Second
        {
            InterlockedExchangePointer(&m_i, new T());
        }
    }
    return m_i;
}
bien sur uniquement sous windows, mais bon je me pose la question.