/* * ======================================================== * * HCore * Copyright Mahrouss Logic, all rights reserved. * * ======================================================== */ #pragma once #include #include #include namespace HCore { template class Array final { public: Array() {} ~Array() {} Array &operator=(const Array &) = default; Array(const Array &) = default; ErrorOr operator[](Size At) { if (At > N) return {}; kcout << "Returning element\r\n"; return ErrorOr(m_Array[At]); } Boolean Empty() const { for (auto Val : m_Array) { if (Val) return false; } return true; } const T *CData() { return m_Array; } operator bool() { return !Empty(); } private: T m_Array[N]; }; } // namespace HCore