Util: Allow setting instance pointer manually, ex: in constructor

This commit is contained in:
Riyyi
2022-09-25 20:51:33 +02:00
parent d6f378b6bc
commit da9fb1ed0f
+10 -1
View File
@@ -29,7 +29,9 @@ public:
static inline void destroy()
{
VERIFY(s_instance, "singleton does not exist");
if (!s_instance) {
return;
}
delete s_instance;
s_instance = nullptr;
@@ -44,6 +46,13 @@ public:
protected:
Singleton() {}
// Hack: in certain situations the instance needs to be set early
static void set(T* instance)
{
VERIFY(!s_instance, "singleton already exists");
s_instance = instance;
}
// Constructor token
struct s {};