better range constraints
parent
bf8be04b01
commit
df4b169aa8
|
@ -386,6 +386,9 @@ public:
|
||||||
HalfRange<RangeHalf> iter(const RangeHalf &other) const {
|
HalfRange<RangeHalf> iter(const RangeHalf &other) const {
|
||||||
return HalfRange<RangeHalf>(*this, other);
|
return HalfRange<RangeHalf>(*this, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RangeValue<T> *data() { return p_range.data(); }
|
||||||
|
const RangeValue<T> *data() const { return p_range.data(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename R>
|
template<typename R>
|
||||||
|
@ -622,12 +625,15 @@ public:
|
||||||
bool put(RangeValue<Rtype> &&v) {
|
bool put(RangeValue<Rtype> &&v) {
|
||||||
return p_beg.range().put(move(v));
|
return p_beg.range().put(move(v));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RangeValue<Rtype> *data() { return p_beg.data(); }
|
||||||
|
const RangeValue<Rtype> *data() const { return p_beg.data(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct ReverseRange: InputRange<ReverseRange<T>,
|
struct ReverseRange: InputRange<ReverseRange<T>,
|
||||||
RangeCategory<T>, RangeValue<T>, RangeReference<T>, RangeSize<T>,
|
CommonType<RangeCategory<T>, FiniteRandomAccessRangeTag>,
|
||||||
RangeDifference<T>
|
RangeValue<T>, RangeReference<T>, RangeSize<T>, RangeDifference<T>
|
||||||
> {
|
> {
|
||||||
private:
|
private:
|
||||||
using Rref = RangeReference<T>;
|
using Rref = RangeReference<T>;
|
||||||
|
@ -700,8 +706,8 @@ public:
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct MoveRange: InputRange<MoveRange<T>,
|
struct MoveRange: InputRange<MoveRange<T>,
|
||||||
RangeCategory<T>, RangeValue<T>, RangeValue<T> &&, RangeSize<T>,
|
CommonType<RangeCategory<T>, FiniteRandomAccessRangeTag>,
|
||||||
RangeDifference<T>
|
RangeValue<T>, RangeValue<T> &&, RangeSize<T>, RangeDifference<T>
|
||||||
> {
|
> {
|
||||||
private:
|
private:
|
||||||
using Rval = RangeValue<T>;
|
using Rval = RangeValue<T>;
|
||||||
|
|
Loading…
Reference in New Issue