diff --git a/ostd/algorithm.hh b/ostd/algorithm.hh index 9b03fa8..704a50b 100644 --- a/ostd/algorithm.hh +++ b/ostd/algorithm.hh @@ -779,9 +779,6 @@ public: void pop_front() { p_range.pop_front(); } void pop_back() { p_range.pop_back(); } - void push_front() { p_range.pop_front(); } - void push_back() { p_range.push_back(); } - void pop_front_n(range_size_t n) { p_range.pop_front_n(n); } @@ -789,13 +786,6 @@ public: p_range.pop_back_n(n); } - void push_front_n(range_size_t n) { - p_range.push_front_n(n); - } - void push_back_n(range_size_t n) { - p_range.push_back_n(n); - } - R front() const { return p_func(p_range.front()); } R back() const { return p_func(p_range.back()); } diff --git a/ostd/range.hh b/ostd/range.hh index c5d4292..e928a14 100644 --- a/ostd/range.hh +++ b/ostd/range.hh @@ -264,20 +264,6 @@ namespace detail { range.pop_back(); } } - - template - void push_front_n(R &range, range_size_t n) { - for (range_size_t i = 0; i < n; ++i) { - range.push_front(); - } - } - - template - void push_back_n(R &range, range_size_t n) { - for (range_size_t i = 0; i < n; ++i) { - range.push_back(); - } - } } template @@ -314,16 +300,6 @@ struct input_range { detail::pop_back_n(*static_cast(this), n); } - template - void push_front_n(Size n) { - detail::push_front_n(*static_cast(this), n); - } - - template - void push_back_n(Size n) { - detail::push_back_n(*static_cast(this), n); - } - B iter() const { return B(*static_cast(this)); } @@ -379,39 +355,18 @@ struct input_range { return tmp; } - B &operator--() { - static_cast(this)->push_front(); - return *static_cast(this); - } - B operator--(int) { - B tmp(*static_cast(this)); - static_cast(this)->push_front(); - return tmp; - } - template B operator+(Difference n) const { B tmp(*static_cast(this)); tmp.pop_front_n(n); return tmp; } - template - B operator-(Difference n) const { - B tmp(*static_cast(this)); - tmp.push_front_n(n); - return tmp; - } template B &operator+=(Difference n) { static_cast(this)->pop_front_n(n); return *static_cast(this); } - template - B &operator-=(Difference n) { - static_cast(this)->push_front_n(n); - return *static_cast(this); - } /* pipe op, must be a member to work for user ranges automagically */ @@ -682,15 +637,9 @@ public: void pop_front() { p_range.pop_back(); } void pop_back() { p_range.pop_front(); } - void push_front() { p_range.push_back(); } - void push_back() { p_range.push_front(); } - void pop_front_n(size_type n) { p_range.pop_front_n(n); } void pop_back_n(size_type n) { p_range.pop_back_n(n); } - void push_front_n(size_type n) { p_range.push_front_n(n); } - void push_back_n(size_type n) { p_range.push_back_n(n); } - reference front() const { return p_range.back(); } reference back() const { return p_range.front(); } @@ -758,15 +707,9 @@ public: void pop_front() { p_range.pop_front(); } void pop_back() { p_range.pop_back(); } - void push_front() { p_range.push_front(); } - void push_back() { p_range.push_back(); } - void pop_front_n(size_type n) { p_range.pop_front_n(n); } void pop_back_n(size_type n) { p_range.pop_back_n(n); } - void push_front_n(size_type n) { p_range.push_front_n(n); } - void push_back_n(size_type n) { p_range.push_back_n(n); } - reference front() const { return std::move(p_range.front()); } reference back() const { return std::move(p_range.back()); } @@ -1296,9 +1239,6 @@ struct iterator_range: input_range> { } } } - void push_front() { - --p_beg; - } void pop_front_n(size_type n) { using IC = typename std::iterator_traits::iterator_category; @@ -1315,15 +1255,6 @@ struct iterator_range: input_range> { } } - void push_front_n(size_type n) { - using IC = typename std::iterator_traits::iterator_category; - if constexpr(std::is_convertible_v) { - p_beg -= n; - } else { - detail::push_front_n(*this, n); - } - } - reference front() const { return *p_beg; } bool equals_front(iterator_range const &range) const { @@ -1344,9 +1275,6 @@ struct iterator_range: input_range> { } --p_end; } - void push_back() { - ++p_end; - } void pop_back_n(size_type n) { using IC = typename std::iterator_traits::iterator_category; @@ -1363,15 +1291,6 @@ struct iterator_range: input_range> { } } - void push_back_n(size_type n) { - using IC = typename std::iterator_traits::iterator_category; - if constexpr(std::is_convertible_v) { - p_end += n; - } else { - detail::push_back_n(*this, n); - } - } - reference back() const { return *(p_end - 1); } bool equals_back(iterator_range const &range) const { diff --git a/ostd/string.hh b/ostd/string.hh index df35cea..0a777f0 100644 --- a/ostd/string.hh +++ b/ostd/string.hh @@ -83,9 +83,6 @@ public: throw std::out_of_range{"pop_front on empty range"}; } } - void push_front() { - --p_beg; - } void pop_front_n(size_t n) { p_beg += n; @@ -94,10 +91,6 @@ public: } } - void push_front_n(size_t n) { - p_beg -= n; - } - T &front() const { return *p_beg; } bool equals_front(basic_char_range const &range) const { @@ -114,9 +107,6 @@ public: } --p_end; } - void push_back() { - ++p_end; - } void pop_back_n(size_t n) { p_end -= n; @@ -125,10 +115,6 @@ public: } } - void push_back_n(size_t n) { - p_end += n; - } - T &back() const { return *(p_end - 1); } bool equals_back(basic_char_range const &range) const {