forked from OctaForge/libostd
simplify PointerRange
parent
c1be7f097d
commit
f96764fad0
14
octa/range.h
14
octa/range.h
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue