diff --git a/BAN/include/BAN/Array.h b/BAN/include/BAN/Array.h index 514b282b..6c0be77f 100644 --- a/BAN/include/BAN/Array.h +++ b/BAN/include/BAN/Array.h @@ -18,78 +18,78 @@ namespace BAN using const_iterator = ConstIteratorSimple; public: - Array() = default; - Array(const T&); + constexpr Array() = default; + constexpr Array(const T&); iterator begin() { return iterator(m_data); } iterator end() { return iterator(m_data + size()); } const_iterator begin() const { return const_iterator(m_data); } const_iterator end() const { return const_iterator(m_data + size()); } - const T& operator[](size_type) const; - T& operator[](size_type); + constexpr const T& operator[](size_type) const; + constexpr T& operator[](size_type); - const T& back() const; - T& back(); - const T& front() const; - T& front(); + constexpr const T& back() const; + constexpr T& back(); + constexpr const T& front() const; + constexpr T& front(); Span span() { return Span(m_data, size()); } const Span span() const { return Span(m_data, size()); } constexpr size_type size() const; - const T* data() const { return m_data; } - T* data() { return m_data; } + constexpr const T* data() const { return m_data; } + constexpr T* data() { return m_data; } private: T m_data[S] {}; }; template - Array::Array(const T& value) + constexpr Array::Array(const T& value) { for (size_type i = 0; i < S; i++) m_data[i] = value; } template - const T& Array::operator[](size_type index) const + constexpr const T& Array::operator[](size_type index) const { ASSERT(index < S); return m_data[index]; } template - T& Array::operator[](size_type index) + constexpr T& Array::operator[](size_type index) { ASSERT(index < S); return m_data[index]; } template - const T& Array::back() const + constexpr const T& Array::back() const { ASSERT(S != 0); return m_data[S - 1]; } template - T& Array::back() + constexpr T& Array::back() { ASSERT(S != 0); return m_data[S - 1]; } template - const T& Array::front() const + constexpr const T& Array::front() const { ASSERT(S != 0); return m_data[0]; } template - T& Array::front() + constexpr T& Array::front() { ASSERT(S != 0); return m_data[0];