From 65ac5d42c9209c4b89c590c93cfa8d985e66b168 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 15 Aug 2024 11:41:35 +1000 Subject: Remove unused ConstexprVector and rename constexpr_utils.hh to array.hh --- src/constexpr_utils.hh | 90 -------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 src/constexpr_utils.hh (limited to 'src/constexpr_utils.hh') diff --git a/src/constexpr_utils.hh b/src/constexpr_utils.hh deleted file mode 100644 index f83faacb..00000000 --- a/src/constexpr_utils.hh +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef constexpr_utils_hh_INCLUDED -#define constexpr_utils_hh_INCLUDED - -#include -#include -#include - -#include "array_view.hh" - -namespace Kakoune -{ - -template -struct Array -{ - constexpr size_t size() const { return N; } - constexpr const T& operator[](int i) const { return m_data[i]; } - constexpr const T* begin() const { return m_data; } - constexpr const T* end() const { return m_data+N; } - - constexpr T& operator[](int i) { return m_data[i]; } - constexpr T* begin() { return m_data; } - constexpr T* end() { return m_data+N; } - - constexpr operator ArrayView() { return {m_data, N}; } - constexpr operator ConstArrayView() const { return {m_data, N}; } - - T m_data[N]; -}; - -template requires (std::is_same_v and ...) -Array(T, U...) -> Array; - -template -constexpr Array make_array(const T (&data)[N], std::index_sequence) -{ - static_assert(sizeof...(Indices) == N, "size mismatch"); - return {{data[Indices]...}}; -} - -template -constexpr Array make_array(const T (&data)[N]) -{ - return make_array(data, std::make_index_sequence()); -} - -template -struct ConstexprVector -{ - using iterator = T*; - using const_iterator = const T*; - - constexpr ConstexprVector() : m_size{0} {} - constexpr ConstexprVector(std::initializer_list items) - : m_size{items.size()} - { - T* ptr = m_data; - for (auto& item : items) - *ptr++ = std::move(item); - } - - constexpr bool empty() const { return m_size == 0; } - constexpr size_t size() const { return m_size; } - - constexpr void resize(size_t n, const T& val = {}) - { - if (n >= capacity) - throw "capacity exceeded"; - for (int i = m_size; i < n; ++i) - m_data[i] = val; - m_size = n; - kak_assert(this->size() == m_size); // check for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79520 - } - - constexpr T& operator[](size_t i) { return m_data[i]; } - constexpr const T& operator[](size_t i) const { return m_data[i]; } - - constexpr iterator begin() { return m_data; } - constexpr iterator end() { return m_data + m_size; } - - constexpr const_iterator begin() const { return m_data; } - constexpr const_iterator end() const { return m_data + m_size; } - - size_t m_size; - T m_data[capacity] = {}; -}; - -} - -#endif // constexpr_utils_hh_INCLUDED -- cgit v1.2.3