The tip “How to Force a C++ Class to Be a Singleton” does not provide enough flexibility for the programmer to control the creation/deletion of the singleton instance. The following code provides better control over memory and class instance.
class MySignleton{public: static MySingleton* GetInstance() { if(!m_pThis) m_pThis = new MySingleton(); return m_pThis; } static void DeleteInstance() { if(m_pThis) { delete m_pThis; m_pThis = NULL; } }private: MySingleton(){ m_pThis = NULL;} ~MySingleton(); static MySingleton* m_pThis;};