#ifndef LIST_H #define LIST_H template class List final { int entries; T data[L]; public: List() : entries(0) { } List& add(const T& t) { if(entries >= L) { return *this; } data[entries++] = t; return *this; } List& clear() { entries = 0; return *this; } int getLength() const { return entries; } constexpr int getCapacity() const { return L; } T& operator[](int index) { return data[index]; } const T& operator[](int index) const { return data[index]; } const T* getData() { return data; } T* begin() { return data; } const T* begin() const { return data; } T* end() { return data + entries; } const T* end() const { return data + entries; } }; #endif