X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fsingleton.hh;fp=src%2Fsingleton.hh;h=3b2ebf73239719f419f374e22527c24492f3b9e0;hb=6dfcfbd4a612230f2037cf891dd98520cb80c997;hp=9cbb385b2b0340f66c57afd6ee94c284b76db65d;hpb=79b5f738f2e38acb60cda7e09f54802933a17105;p=chaz%2Fyoink diff --git a/src/singleton.hh b/src/singleton.hh index 9cbb385..3b2ebf7 100644 --- a/src/singleton.hh +++ b/src/singleton.hh @@ -35,43 +35,43 @@ template class singleton { - static T* ptr; + static T* ptr_; public: singleton() { - if (!ptr) + if (!ptr_) { // This hack is from Game Programming Gems. long long offset = (long long)(T*)1 - (long long)(singleton*)(T*)1; - ptr = (T*)((long long)this + offset); + ptr_ = (T*)((long long)this + offset); } } ~singleton() { long long offset = (long long)(T*)1 - (long long)(singleton*)(T*)1; - if (ptr == (T*)((long long)this + offset)) + if (ptr_ == (T*)((long long)this + offset)) { - ptr = 0; + ptr_ = 0; } } static T& instance() { - if (!ptr) + if (!ptr_) { throw std::runtime_error("accessing uninstantiated singleton"); } - return *ptr; + return *ptr_; } - static T* instancePtr() + static T* instance__ptr() { - return ptr; + return ptr_; } }; -template T* singleton::ptr = 0; +template T* singleton::ptr_ = 0; #endif // _SINGLETON_HH_