14 super(isReversed), _n(isReversed ? own.len() - 1 - n : n), _own(own) {}
16 using super::operator*;
18 T& operator*()
override {
return *get(); }
21 nbool isEnd()
const override {
return !_own.in(_n); }
23 void rel()
override { _n = this->isReversed() ? -1 : _own.len(); }
31 WHEN(step <= 0) .ret(0);
32 WHEN(isEnd()) .ret(0);
34 int toLast = len - 1 - _n;
44 ncnt stepBackward(ncnt step)
override {
45 WHEN(step <= 0) .ret(0);
46 WHEN(isEnd()) .ret(0);
60 WHEN(isEnd()) .ret(
nullptr);
64 using super::getContainer;
66 tucontainable<T>* getContainer()
override {
return &_own; }
69 nbool _onSame(
const typeProvidable& rhs)
const override {
70 const me& cast = (
const me&) rhs;
71 return this->isFrom(cast.getContainer()) && _n == cast._n;