From 0c391fdbce5a079cf03e483eb6174dd47806163d Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 7 Aug 2019 21:08:47 +0800 Subject: *misc --- source/modules/asura-utils/singleton.hpp | 59 -------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 source/modules/asura-utils/singleton.hpp (limited to 'source/modules/asura-utils/singleton.hpp') 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 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(this); - }; - - virtual ~Singleton() {}; - - static T* instance; - - private: - - Singleton(const Singleton& singleton); - - Singleton& operator = (const Singleton& singleton); - - }; - - // 实例初始化为空 - template - T* Singleton::instance = nullptr; - -} - -#endif // _ASURA_SINGLETON_H_ \ No newline at end of file -- cgit v1.1-26-g67d0