diff --git a/octa/algorithm.h b/octa/algorithm.h index f85c66a..1e3a04c 100644 --- a/octa/algorithm.h +++ b/octa/algorithm.h @@ -421,10 +421,18 @@ namespace octa { RangeSize pop_first_n(RangeSize n) { p_range.pop_first_n(n); } RangeSize pop_last_n(RangeSize n) { p_range.pop_last_n(n); } + RangeValue first() const { return p_func(p_range.first()); } + RangeValue last() const { return p_func(p_range.last()); } + RangeValue first() { return p_func(p_range.first()); } RangeValue last() { return p_func(p_range.last()); } - RangeValue operator[](RangeSize idx) { return p_func(p_range[idx]); } + RangeValue operator[](RangeSize idx) const { + return p_func(p_range[idx]); + } + RangeValue operator[](RangeSize idx) { + return p_func(p_range[idx]); + } MapRange slice(RangeSize start, RangeSize end) { return MapRange(p_range.slice(start, end), p_func);