simplify PointerRange

master
Daniel Kolesa 2015-05-29 00:01:24 +01:00
parent c1be7f097d
commit f96764fad0
1 changed files with 7 additions and 7 deletions

View File

@ -422,11 +422,11 @@ namespace octa {
} }
/* satisfy InputRange / ForwardRange */ /* satisfy InputRange / ForwardRange */
bool empty() const { return p_beg == nullptr; } bool empty() const { return p_beg == p_end; }
void pop_first() { void pop_first() {
if (p_beg == nullptr) return; if (p_beg == p_end) return;
if (++p_beg == p_end) p_beg = p_end = nullptr; ++p_beg;
} }
size_t pop_first_n(size_t n) { size_t pop_first_n(size_t n) {
@ -434,7 +434,7 @@ namespace octa {
size_t olen = p_end - p_beg; size_t olen = p_end - p_beg;
p_beg += n; p_beg += n;
if (p_beg >= p_end) { if (p_beg >= p_end) {
p_beg = p_end = nullptr; p_beg = p_end;
return olen; return olen;
} }
return p_beg - obeg; return p_beg - obeg;
@ -445,8 +445,8 @@ namespace octa {
/* satisfy BidirectionalRange */ /* satisfy BidirectionalRange */
void pop_last() { void pop_last() {
if (p_end-- == p_beg) { p_end = nullptr; return; } if (p_end == p_beg) return;
if (p_end == p_beg) p_beg = p_end = nullptr; --p_end;
} }
size_t pop_last_n(size_t n) { size_t pop_last_n(size_t n) {
@ -454,7 +454,7 @@ namespace octa {
size_t olen = p_end - p_beg; size_t olen = p_end - p_beg;
p_end -= n; p_end -= n;
if (p_end <= (p_beg + 1)) { if (p_end <= (p_beg + 1)) {
p_beg = p_end = nullptr; p_end = p_beg;
return olen; return olen;
} }
return oend - p_end; return oend - p_end;