More main progress; tons of headers & stuff

Former-commit-id: a6e365791b
This commit is contained in:
2022-09-13 00:26:54 -04:00
parent c6823f56cd
commit 329618c585
95 changed files with 1673 additions and 202 deletions

View File

@@ -3,29 +3,34 @@
#include "types.h"
template < typename T >
class CRefData {
public:
T* x0_ptr;
CRefData(void* ptr) : x0_ptr(ptr), x4_refCount(1) {}
CRefData(void* ptr, int refCount) : x0_ptr(ptr), x4_refCount(refCount) {}
void* x0_ptr;
unsigned int x4_refCount;
};
namespace rstl {
template < typename T >
class rc_ptr {
CRefData< T >* x0_refData;
public:
rc_ptr(T* ptr) : x0_refData(new CRefData(ptr)) {}
~rc_ptr();
T* GetPtr() const { return x0_refData->x0_ptr; }
T* GetPtr() const { return reinterpret_cast< T* >(x0_refData->x0_ptr); }
// TODO ReleaseData__Q24rstl20rc_ptr
T* operator->() const { return GetPtr(); }
T& operator*() const { return *GetPtr(); }
private:
CRefData* x0_refData;
};
template < typename T >
class ncrc_ptr : public rc_ptr< T > {
// TODO
public:
ncrc_ptr(T* ptr) : rc_ptr(ptr) {}
};
} // namespace rstl