From b6746d7ac08a33ffdcb6f9749796921b1083e940 Mon Sep 17 00:00:00 2001 From: Myles Busig Date: Thu, 7 Mar 2024 19:38:00 -0700 Subject: [PATCH] Remove iterators from string and string_view Iterators could probably be implemented efficiently, but it is not a priority at the moment. They are removed for the time being. --- include/mtl/string.hpp | 35 ----------------------------- include/mtl/string_view.hpp | 16 -------------- src/string.cpp | 44 ------------------------------------- 3 files changed, 95 deletions(-) diff --git a/include/mtl/string.hpp b/include/mtl/string.hpp index 92e2220..b5d28e8 100644 --- a/include/mtl/string.hpp +++ b/include/mtl/string.hpp @@ -2,7 +2,6 @@ #include #include -#include #include "utility.hpp" #include "string_view.hpp" @@ -24,11 +23,6 @@ protected: size_t m_capacity; public: - typedef char* iterator; - typedef const char* const_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - static constexpr const size_t npos = -1; istring(char* _str, size_t _capacity, size_t _size); @@ -78,24 +72,6 @@ public: const char* data() const; const char* c_str() const; - // Iterator functions - - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - - iterator end(); - const_iterator end() const; - const_iterator cend() const; - - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - // Capacity bool empty() const; @@ -117,15 +93,8 @@ public: istring& insert(size_t index, const string_view& str); istring& insert(size_t index, const string_view& str, size_t str_index, size_t count = npos); istring& insert(size_t index, size_t count, char ch); - iterator insert(const_iterator pos, char ch); - iterator insert(const_iterator pos, size_t count, char ch); - template - iterator insert(const_iterator pos, T first, T last) { - } istring& erase(size_t index = 0, size_t count = npos); - iterator erase(const_iterator pos); - iterator erase(const_iterator first, const_iterator last); void push_back(char ch); void pop_back(); @@ -142,11 +111,7 @@ public: istring& replace(size_t pos, size_t count, const string_view& str); istring& replace(size_t pos, size_t count, const string_view& str, size_t pos2, size_t count2 = npos); - istring& replace(const_iterator first, const_iterator last, const string_view& str); istring& replace(size_t pos, size_t count, size_t count2, char ch); - istring& replace(const_iterator first, const_iterator last, size_t count2, char ch); - template - istring& replace(const_iterator first, const_iterator last, T first2, T last2); /** * \brief Copy the string to a buffer diff --git a/include/mtl/string_view.hpp b/include/mtl/string_view.hpp index 60c23a0..fb7e0e9 100644 --- a/include/mtl/string_view.hpp +++ b/include/mtl/string_view.hpp @@ -3,7 +3,6 @@ #include #include #include // std::char_traits -#include namespace mtl { @@ -20,9 +19,6 @@ class string_view { friend class istring; public: - typedef const char* iterator; - typedef std::reverse_iterator reverse_iterator; - static constexpr size_t npos = -1; constexpr string_view(const char* str) : m_str(str), m_size(std::char_traits::length(str)) {} @@ -39,18 +35,6 @@ public: constexpr const char* data() const { return m_str; } constexpr const char* c_str() const { return m_str; } - iterator begin() const { return m_str; } - iterator cbegin() const { return m_str; } - - iterator end() const { return m_str + m_size; } - iterator cend() const { return m_str + m_size; } - - reverse_iterator rbegin() const { return reverse_iterator(m_str + m_size); } - reverse_iterator crbegin() const { return reverse_iterator(m_str + m_size); } - - reverse_iterator rend() const { return reverse_iterator(m_str); } - reverse_iterator crend() const { return reverse_iterator(m_str); } - constexpr bool empty() const { return m_size == 0; } constexpr size_t size() const { return m_size; } diff --git a/src/string.cpp b/src/string.cpp index 150f350..678a5c9 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -124,50 +124,6 @@ const char* istring::c_str() const { return m_str; } -/* - * ===== iterators ===== - */ - -istring::iterator istring::begin() { - return m_str; -} -istring::const_iterator istring::begin() const { - return m_str; -} -istring::const_iterator istring::cbegin() const { - return m_str; -} - -istring::iterator istring::end() { - return m_str + m_size; -} -istring::const_iterator istring::end() const { - return m_str + m_size; -} -istring::const_iterator istring::cend() const { - return m_str + m_size; -} - -istring::reverse_iterator istring::rbegin() { - return reverse_iterator(m_str + m_size); -} -istring::const_reverse_iterator istring::rbegin() const { - return reverse_iterator(m_str + m_size); -} -istring::const_reverse_iterator istring::crbegin() const { - return reverse_iterator(m_str + m_size); -} - -istring::reverse_iterator istring::rend() { - return reverse_iterator(m_str); -} -istring::const_reverse_iterator istring::rend() const { - return reverse_iterator(m_str); -} -istring::const_reverse_iterator istring::crend() const { - return reverse_iterator(m_str); -} - /* * ===== capacity ===== */