#ifndef ARRAY_H #define ARRAY_H #include "common/utils/Types.h" template class Array final { public: Array() { } Array(const T& t) { for(uint i = 0; i < N; i++) { data[i] = t; } } const T& operator[](uint index) const { return data[index]; } T& operator[](uint index) { return data[index]; } const T* operator+(uint index) const { return data + index; } T* operator+(uint index) { return data + index; } T* begin() { return data; } const T* begin() const { return data; } T* end() { return data + N; } const T* end() const { return data + N; } uint getLength() const { return N; } private: T data[N]; }; #endif