From 51b210e1d6e0464f3a014da8491d93a5b5de4356 Mon Sep 17 00:00:00 2001 From: q66 Date: Sat, 30 May 2015 01:46:50 +0100 Subject: [PATCH] cleanups --- octa/range.h | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/octa/range.h b/octa/range.h index 20f3d22..3bf83b0 100644 --- a/octa/range.h +++ b/octa/range.h @@ -242,6 +242,11 @@ namespace octa { } }; + template + RangeDifference operator-(const R &lhs, const R &rhs) { + return rhs.distance(lhs); + } + template RangeSize __octa_pop_first_n(R &range, RangeSize n) { for (RangeSize i = 0; i < n; ++i) @@ -899,14 +904,8 @@ namespace octa { return p_end.next(); } - RangeReference first() const { - return p_beg.get(); - } - RangeReference last() const { - auto copy = p_end; - copy.prev(); - return copy.get(); - } + RangeReference first() const { return *p_beg; } + RangeReference last() const { return *(p_end - 1); } bool equals_first(const HalfRange &range) const { return p_beg == range.p_beg; @@ -916,15 +915,13 @@ namespace octa { } RangeDifference distance_first(const HalfRange &range) const { - return p_beg.distance(range.p_beg); + return range.p_beg - p_beg; } RangeDifference distance_last(const HalfRange &range) const { - return p_end.distance(range.p_end); + return range.p_end - p_end; } - RangeSize size() const { - return p_end - p_beg; - } + RangeSize size() const { return p_end - p_beg; } HalfRange slice(RangeSize start, RangeSize end) const { return HalfRange(p_beg + start, p_beg + end);