zengine-old/engine/3rdparty/zlog/test/singleton.h

20 lines
383 B
C++

#pragma once
template <typename T>
class Singleton {
protected:
static T* ms_Singleton;
public:
explicit Singleton() {
ms_Singleton = static_cast<T*>(this);
}
~Singleton() {
ms_Singleton = nullptr;
}
static T& GetSingleton(void) {
return *ms_Singleton;
}
static T* GetSingletonPtr(void) {
return ms_Singleton;
}
};