#pragma once #include namespace td { template class Array { private: T* m_Data; public: Array() : m_Data(new T[S]) {} Array(const std::initializer_list& args) { std::size_t i = 0; for(const T& element : args) { m_Data[i] = element; i++; } } T& operator[](std::size_t a_Index) { return m_Data[a_Index]; } ~Array() { delete [] m_Data; } }; } // namespace td