20 lines
383 B
C++
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;
|
|
}
|
|
}; |