prime/include/Kyoto/TOneStatic.hpp
Luke Street bed1bb88de Reorganize includes to match asm
Former-commit-id: 848752477e6833629bb0ce30125ca6f5dbffccd1
2022-07-18 18:42:58 -04:00

28 lines
613 B
C++

#ifndef _TONESTATIC_HPP
#define _TONESTATIC_HPP
#include "types.h"
template < typename T >
class TOneStatic {
public:
void* operator new(unsigned long sz, const char*, const char*); /* {
ReferenceCount()++;
return GetAllocSpace();
}*/
void* operator new(unsigned long sz) { return operator new(sz, "??(??)", nullptr); }
void operator delete(void* ptr) { ReferenceCount()--; }
private:
static void* GetAllocSpace() {
static u8 sAllocSpace[sizeof(T)];
return &sAllocSpace;
}
static u32& ReferenceCount() {
static u32 sReferenceCount = 0;
return sReferenceCount;
}
};
#endif