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)};
85 Iterator(
const T offset,
const BaseT *data) : offset_(offset), data_(data) {}
89 return T(*data_) + offset_;
100 return {offset_, data_.
begin()};
105 return {offset_, data_.
end()};
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
constexpr Span slice(int64_t start, int64_t size) const
constexpr int64_t size() const
constexpr const T & last(const int64_t n=0) const
constexpr const T * end() const
constexpr IndexRange index_range() const
constexpr const T * begin() const
constexpr bool is_empty() const