diff options
Diffstat (limited to 'Source/Asura.Engine/singleton.hpp')
-rw-r--r-- | Source/Asura.Engine/singleton.hpp | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/Source/Asura.Engine/singleton.hpp b/Source/Asura.Engine/singleton.hpp deleted file mode 100644 index 756209a..0000000 --- a/Source/Asura.Engine/singleton.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __ASURA_SINGLETON_H__ -#define __ASURA_SINGLETON_H__ - -#include "Config.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 |