export module Core.Array; export import Core.Types; namespace Core { export template struct Array final { T data[N] = {}; constexpr void fill(const T& t) noexcept { static_assert(noexcept(data[0] = t), "copy is unsafe"); for(size_t i = 0; i < N; i++) { data[i] = t; } } constexpr T& operator[](size_t index) noexcept { return data[index]; } constexpr const T& operator[](size_t index) const noexcept { return data[index]; } constexpr T* begin() noexcept { return data; } constexpr T* end() noexcept { return data + N; } constexpr const T* begin() const noexcept { return data; } constexpr const T* end() const noexcept { return data + N; } static constexpr size_t getLength() noexcept { return N; } }; }