diff options
Diffstat (limited to 'include/array.hpp')
-rw-r--r-- | include/array.hpp | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/include/array.hpp b/include/array.hpp deleted file mode 100644 index 9de6c0a..0000000 --- a/include/array.hpp +++ /dev/null @@ -1,113 +0,0 @@ -/* - * libfud - * Copyright 2024 Dominick Allen - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef EXT_ARRAY_HPP -#define EXT_ARRAY_HPP - -#include "memory.hpp" - -#include <cstdlib> - -namespace fud { - -template <typename T, size_t Size> -struct Array { - static_assert(Size > 0); - using ValueType = T; - - T m_data[Size]; // NOLINT(cppcoreguidelines-avoid-c-arrays) - - constexpr static Array constFill(T value) - { - Array arr{}; - setMemory(arr, value); - return arr; - } - - [[nodiscard]] constexpr size_t size() const - { - return Size; - } - - constexpr T& front() - { - return m_data[0]; - } - - constexpr const T& front() const - { - return m_data[0]; - } - - constexpr T& back() - { - return m_data[Size - 1]; - } - - constexpr const T& back() const - { - return m_data[Size - 1]; - } - - constexpr T* data() noexcept - { - return m_data; - } - - constexpr const T* data() const noexcept - { - return m_data; - } - - constexpr T* begin() noexcept - { - return m_data; - } - - constexpr const T* begin() const noexcept - { - return m_data; - } - - constexpr T* end() noexcept - { - return m_data + Size; - } - - constexpr const T* end() const noexcept - { - return m_data + Size; - } - - constexpr T& operator[](size_t index) - { - return m_data[index]; - } - - constexpr const T& operator[](size_t index) const - { - return m_data[index]; - } - - constexpr bool operator==(const Array<T, Size>&) const noexcept = default; - - constexpr auto operator<=>(const Array<T, Size>& other) const noexcept = default; -}; - -} // namespace ext_lib - -#endif |