better constness on ranges

master
Daniel Kolesa 2015-04-16 20:35:10 +01:00
parent 0ac0ec24be
commit e1b9e208ae
2 changed files with 12 additions and 10 deletions

View File

@ -109,30 +109,29 @@ namespace octa {
ReverseRange(const ReverseRange &it): p_range(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(); }
void pop_first() { p_range.pop_last (); }
void pop_last () { p_range.pop_first(); }
bool operator==(const ReverseRange &v) {
bool operator==(const ReverseRange &v) const {
return p_range == v.p_range;
}
bool operator!=(const ReverseRange &v) {
bool operator!=(const ReverseRange &v) const {
return p_range != v.p_range;
}
typename T::type::reference first() { return p_range.last(); }
typename T::type::reference first() const { return p_range.last(); }
typename type::reference first() { return p_range.last(); }
typename type::reference first() const { return p_range.last(); }
typename T::type::reference last() { return p_range.first(); }
typename T::type::reference last() const { return p_range.first(); }
typename type::reference last() { 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];
}
typename T::type::reference operator[](size_t i) const {
typename type::reference operator[](size_t i) const {
return p_range[length() - i - 1];
}

View File

@ -283,6 +283,9 @@ namespace octa {
VectorRange<T> each() {
return VectorRange<T>(p_buf, p_buf + p_len);
}
VectorRange<const T> each() const {
return VectorRange<const T>(p_buf, p_buf + p_len);
}
};
}