From df4b169aa8d4a1fe3875f4f1597057fd2fb8bf95 Mon Sep 17 00:00:00 2001 From: q66 Date: Tue, 28 Jul 2015 02:40:24 +0100 Subject: [PATCH] better range constraints --- ostd/range.hh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ostd/range.hh b/ostd/range.hh index b104e69..96c9301 100644 --- a/ostd/range.hh +++ b/ostd/range.hh @@ -386,6 +386,9 @@ public: HalfRange iter(const RangeHalf &other) const { return HalfRange(*this, other); } + + RangeValue *data() { return p_range.data(); } + const RangeValue *data() const { return p_range.data(); } }; template @@ -622,12 +625,15 @@ public: bool put(RangeValue &&v) { return p_beg.range().put(move(v)); } + + RangeValue *data() { return p_beg.data(); } + const RangeValue *data() const { return p_beg.data(); } }; template struct ReverseRange: InputRange, - RangeCategory, RangeValue, RangeReference, RangeSize, - RangeDifference + CommonType, FiniteRandomAccessRangeTag>, + RangeValue, RangeReference, RangeSize, RangeDifference > { private: using Rref = RangeReference; @@ -700,8 +706,8 @@ public: template struct MoveRange: InputRange, - RangeCategory, RangeValue, RangeValue &&, RangeSize, - RangeDifference + CommonType, FiniteRandomAccessRangeTag>, + RangeValue, RangeValue &&, RangeSize, RangeDifference > { private: using Rval = RangeValue;