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) :
avec :
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; }
bien sur uniquement sous windows, mais bon je me pose la question.
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; }
Partager