diff options
Diffstat (limited to 'source/modules/asura-utils/singleton.hpp')
-rw-r--r-- | source/modules/asura-utils/singleton.hpp | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/source/modules/asura-utils/singleton.hpp b/source/modules/asura-utils/singleton.hpp deleted file mode 100644 index 9bb7336..0000000 --- a/source/modules/asura-utils/singleton.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _ASURA_SINGLETON_H_ -#define _ASURA_SINGLETON_H_ - -#include "UtilsConfig.h" - -namespace AsuraEngine -{ - - /// - /// ̳Singletonڵһʵʱʵ֮ٴʵᱨ - /// - template<class T> - class Singleton - { - public: - - static T* Get() - { - // ֮ǰûдһ - if (!instance) instance = new T; - // ʵ - return instance; - } - - static void Destroy() - { - delete instance; - instance = nullptr; - } - - protected: - - Singleton() - { - // instanceζִһʵǴġ - ASSERT(!instance); - // ʵΪʵ - instance = static_cast<T*>(this); - }; - - virtual ~Singleton() {}; - - static T* instance; - - private: - - Singleton(const Singleton& singleton); - - Singleton& operator = (const Singleton& singleton); - - }; - - // ʵʼΪ - template<class T> - T* Singleton<T>::instance = nullptr; - -} - -#endif // _ASURA_SINGLETON_H_
\ No newline at end of file |