#ifndef STORM_ARRAY_TS_BASE_ARRAY_HPP #define STORM_ARRAY_TS_BASE_ARRAY_HPP #include #include template class TSBaseArray { public: uint32_t m_alloc = 0; uint32_t m_count = 0; T* m_data = nullptr; virtual const char* MemFileName() const; virtual int32_t MemLineNo() const; T& operator[](uint32_t i); uint32_t Count(void) const; void Clear(void); }; template T& TSBaseArray::operator[](uint32_t i) { this->CheckArrayBounds(i); return this->m_data[i]; } template uint32_t TSBaseArray::Count() const { return this->m_count; } template void TSBaseArray::Clear() { delete[] this->m_data; TSBaseArray(); } template const char* TSBaseArray::MemFileName() const { return typeid(T).name(); } template int32_t TSBaseArray::MemLineNo() const { return -2; } #endif