forked from OctaForge/libostd
better constness on ranges
This commit is contained in:
parent
0ac0ec24be
commit
e1b9e208ae
19
octa/range.h
19
octa/range.h
|
@ -109,30 +109,29 @@ namespace octa {
|
||||||
ReverseRange(const ReverseRange &it): p_range(it.p_range) {}
|
ReverseRange(const ReverseRange &it): p_range(it.p_range) {}
|
||||||
ReverseRange(ReverseRange &&it): p_range(move(it.p_range)) {}
|
ReverseRange(ReverseRange &&it): p_range(move(it.p_range)) {}
|
||||||
|
|
||||||
bool empty() { return p_range.empty(); }
|
bool empty () const { return p_range.empty (); }
|
||||||
|
|
||||||
size_t length() const { return p_range.length(); }
|
size_t length() const { return p_range.length(); }
|
||||||
|
|
||||||
void pop_first() { p_range.pop_last (); }
|
void pop_first() { p_range.pop_last (); }
|
||||||
void pop_last () { p_range.pop_first(); }
|
void pop_last () { p_range.pop_first(); }
|
||||||
|
|
||||||
bool operator==(const ReverseRange &v) {
|
bool operator==(const ReverseRange &v) const {
|
||||||
return p_range == v.p_range;
|
return p_range == v.p_range;
|
||||||
}
|
}
|
||||||
bool operator!=(const ReverseRange &v) {
|
bool operator!=(const ReverseRange &v) const {
|
||||||
return p_range != v.p_range;
|
return p_range != v.p_range;
|
||||||
}
|
}
|
||||||
|
|
||||||
typename T::type::reference first() { return p_range.last(); }
|
typename type::reference first() { return p_range.last(); }
|
||||||
typename T::type::reference first() const { return p_range.last(); }
|
typename type::reference first() const { return p_range.last(); }
|
||||||
|
|
||||||
typename T::type::reference last() { return p_range.first(); }
|
typename type::reference last() { return p_range.first(); }
|
||||||
typename T::type::reference last() const { return p_range.first(); }
|
typename type::reference last() const { return p_range.first(); }
|
||||||
|
|
||||||
typename T::type::reference operator[](size_t i) {
|
typename type::reference operator[](size_t i) {
|
||||||
return p_range[length() - i - 1];
|
return p_range[length() - i - 1];
|
||||||
}
|
}
|
||||||
typename T::type::reference operator[](size_t i) const {
|
typename type::reference operator[](size_t i) const {
|
||||||
return p_range[length() - i - 1];
|
return p_range[length() - i - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -283,6 +283,9 @@ namespace octa {
|
||||||
VectorRange<T> each() {
|
VectorRange<T> each() {
|
||||||
return VectorRange<T>(p_buf, p_buf + p_len);
|
return VectorRange<T>(p_buf, p_buf + p_len);
|
||||||
}
|
}
|
||||||
|
VectorRange<const T> each() const {
|
||||||
|
return VectorRange<const T>(p_buf, p_buf + p_len);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue