#ifndef CORE_ARRAY_HPP #define CORE_ARRAY_HPP #include "core/utils/ArrayString.hpp" namespace Core { template class Array final { static_assert(N > 0, "Array size must be positive"); T data[static_cast(N)]; public: constexpr Array() = default; constexpr Array(const T& t) { fill(t); } constexpr void fill(const T& t) { for(i64 i = 0; i < N; i++) { data[i] = t; } } constexpr T& operator[](i64 index) { return data[index]; } constexpr const T& operator[](i64 index) const { return data[index]; } constexpr T* begin() { return data; } constexpr T* end() { return data + N; } constexpr const T* begin() const { return data; } constexpr const T* end() const { return data + N; } static consteval i64 getLength() { return N; } template check_return Error toString(String& s) const { return Core::toString(s, *this); } }; } #endif