From 4486beab7beb6a80ba6a89bfa73c0fbc9708ca74 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 6 Dec 2018 17:26:07 +0800 Subject: *singleton --- src/libjin/common/je_singleton.hpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/libjin/common/je_singleton.hpp') diff --git a/src/libjin/common/je_singleton.hpp b/src/libjin/common/je_singleton.hpp index ba13b80..51dc9c5 100644 --- a/src/libjin/common/je_singleton.hpp +++ b/src/libjin/common/je_singleton.hpp @@ -2,6 +2,7 @@ #define __JE_SINGLETON_H__ #include "je_object.h" +#include "je_exception.h" namespace JinEngine { @@ -38,7 +39,12 @@ namespace JinEngine /// /// Singleton constructor. /// - Singleton() {}; + Singleton() + { + // Check singleton. + if (_instance) + throw Exception("This is a singleton."); + }; /// /// Singleton destructor. @@ -70,12 +76,8 @@ namespace JinEngine /// /// Singleton instance. /// - template T* Singleton::_instance = nullptr; - - /// - /// Singleton notation. - /// - #define singleton(T) friend Singleton + template + T* Singleton::_instance = nullptr; } // namespace JinEngine -- cgit v1.1-26-g67d0