This commit is contained in:
d1str4ught
2025-08-18 19:46:48 +02:00
parent 65582e25ec
commit 4be475f111
1334 changed files with 456590 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
#pragma once
template <typename T>
class TAbstractSingleton
{
static T * ms_singleton;
public:
TAbstractSingleton()
{
assert(!ms_singleton);
int offset = (int) (T*) 1 - (int) (CSingleton <T>*) (T*) 1;
ms_singleton = (T*) ((int) this + offset);
}
virtual ~TAbstractSingleton()
{
assert(ms_singleton);
ms_singleton = 0;
}
__forceinline static T & GetSingleton()
{
assert(ms_singleton!=NULL);
return (*ms_singleton);
}
};
template <typename T> T * TAbstractSingleton <T>::ms_singleton = 0;