45 ,
_Data(reinterpret_cast<T&>(data))
89 new (&controlBlock->data) T();
93template <
typename T,
typename A1>
97 new (&controlBlock->data) T(a1);
101template <
typename T,
typename A1,
typename A2>
105 new (&controlBlock->data) T(a1, a2);
109template <
typename T,
typename A1,
typename A2,
typename A3>
113 new (&controlBlock->data) T(a1, a2, a3);
117template <
typename T,
typename A1,
typename A2,
typename A3,
typename A4>
121 new (&controlBlock->data) T(a1, a2, a3, a4);
#define FORCEINLINE
Definition AttributeDefines.hpp:55
#define NODISCARD
Definition AttributeDefines.hpp:17
#define Assert(exp)
Implemented as direct interrupt to avoid dirtying the call stack with assert function when debugging.
Definition MacroDefines.hpp:30
Base class for memory pooling with new/delete operator overloading.
Definition FlexibleMemoryPoolingBase.hpp:39
Shared pointer custom implementation for C++98 standard.
Definition SharedPtr.hpp:164
detail::ControlBlock< T > * mControlBlock
Definition SharedPtr.hpp:346
T * Get() const
Definition SharedPtr.hpp:271
SharedPtr(const SharedPtr< T > &rhs)
Definition SharedPtr.hpp:184
SharedPtr< T > & operator=(const SharedPtr< T > &rhs)
Definition SharedPtr.hpp:226
SharedPtr()
Definition SharedPtr.hpp:168
bool operator==(const T *rhs) const
Definition SharedPtr.hpp:256
detail::ControlBlock< T > * GetControlBlock() const
Get the control block of the shared pointer.
Definition SharedPtr.hpp:340
SharedPtr(detail::ControlBlock< T > *controlBlock)
Create a shared pointer from the control block.
Definition SharedPtr.hpp:203
bool operator!=(const T *rhs) const
Definition SharedPtr.hpp:261
T * operator->() const
Definition SharedPtr.hpp:245
~SharedPtr()
Definition SharedPtr.hpp:221
size_t UseCount() const
Definition SharedPtr.hpp:308
bool operator!=(const SharedPtr< T > &rhs) const
Definition SharedPtr.hpp:266
T & operator*() const
Definition SharedPtr.hpp:239
void Reset()
Definition SharedPtr.hpp:280
SharedPtr(T *ptr)
Definition SharedPtr.hpp:173
bool operator==(const SharedPtr< T > &rhs) const
Definition SharedPtr.hpp:251
void Swap(SharedPtr< T > &rhs)
Definition SharedPtr.hpp:317
Weak pointer custom implementation for C++98 standard.
Definition WeakPtr.hpp:18
Definition ControlBlock.hpp:7
SharedPtr< T > MakeShared()
Definition SharedPtr.hpp:86
Do not use this class directly.
Definition SharedPtr.hpp:31
~ControlBlock()
Definition SharedPtr.hpp:49
size_t WeakRefCount
Definition SharedPtr.hpp:35
bool bExpired
Definition SharedPtr.hpp:36
ControlBlock()
Definition SharedPtr.hpp:41
T & _Data
<T> reference of data for debugging watch
Definition SharedPtr.hpp:39
size_t StrongRefCount
Definition SharedPtr.hpp:34
ALIGNAS(ALIGNOF(T)) char data[sizeof(T)]