6 #include "noncopyable.h"
\r
8 //! SingletonDestroyer
\r
15 Destroyer(T* q) : doomed(q) { assert(doomed); }
\r
20 Destroyer<T>::~Destroyer()
\r
37 class Singleton:public NonCopyable
\r
41 static T *Instance();
\r
48 T *Singleton<T>::Instance()
\r
51 static Poco::FastMutex mutex;
\r
52 Poco::ScopedLock<Poco::FastMutex> g(mutex);
\r
56 static Destroyer<T> des(obj);
\r
58 return const_cast<T*>(obj);
\r
61 #endif // _singleton_
\r