From 4d840a8d9ab40b322f6b2f797d898a543502b04a Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 23 Apr 2025 18:40:20 +0300 Subject: [PATCH] BAN: Make Array more constexpr --- BAN/include/BAN/Array.h | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) 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];