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;