12 super(isReversed), _n(isReversed ? own.len() - 1 - n : n), _own(own) {}
14 using super::operator*;
16 nInt operator*()
override {
return get(); }
19 nbool isEnd()
const override {
return !_own.in(_n); }
21 void rel()
override { _n = this->isReversed() ? -1 : _own.len(); }
29 WHEN(step <= 0) .ret(0);
30 WHEN(isEnd()) .ret(0);
32 int toLast = len - 1 - _n;
42 ncnt stepBackward(ncnt step)
override {
43 WHEN(step <= 0) .ret(0);
44 WHEN(isEnd()) .ret(0);
58 WHEN(isEnd()) .ret(nInt(0));
62 using super::getContainer;
64 tucontainable<nInt, nInt, nInt>* getContainer()
override {
return &_own; }
67 nbool _onSame(
const typeProvidable& rhs)
const override {
68 const me& cast = (
const me&) rhs;
69 return this->isFrom(cast.getContainer()) && _n == cast._n;