41 return data_.is_empty();
51 return offset_ + data_.last(n);
61 return T(data_[i]) + offset_;
66 return {offset_, data_.slice(range)};
71 return {offset_, data_.slice(start,
size)};
89 return T(*data_) + offset_;
100 return {offset_, data_.begin()};
105 return {offset_, data_.end()};
constexpr IndexRange index_range() const
Iterator(const T offset, const BaseT *data)
const BaseT *const & iter_prop() const
OffsetSpan(const T offset, const Span< BaseT > data)
OffsetSpan slice(const int64_t start, const int64_t size) const
IndexRange index_range() const
T last(const int64_t n=0) const
OffsetSpan slice(const IndexRange &range) const
Span< BaseT > base_span() const
T operator[](const int64_t i) const