diff --git a/octa/range.hh b/octa/range.hh index fa8cbda..8a30d8e 100644 --- a/octa/range.hh +++ b/octa/range.hh @@ -466,14 +466,20 @@ template> Size get_n(OR orange, Size n = -1) { B &r = *((B *)this); Size on = n; - for (; n && !r.empty() && orange.put(r.front()); --n); + for (; n && !r.empty(); --n) { + orange.put(r.front()); + r.pop_front(); + } return (on - n); } Size get_n(octa::RemoveCv *p, Size n = -1) { B &r = *((B *)this); Size on = n; - for (; n && !r.empty(); --n) *p++ = r.front(); + for (; n && !r.empty(); --n) { + *p++ = r.front(); + r.pop_front(); + } return (on - n); } };