9class iter:
public iterable,
public clonable,
public typeProvidable {
12 template <
typename K1,
typename V1,
typename defaultContainer1>
friend class tnchain;
13 template <
typename K1,
typename V1,
typename TACTIC>
friend class tnmap;
22 me operator+(ncnt step);
25 me& operator+=(ncnt step);
28 const V& operator*()
const BY_CONST_FUNC(
operator*())
29 const V* operator->()
const BY_CONST_FUNC(operator->())
30 me&
operator=(
const me& rhs);
31 explicit operator nbool()
const;
34 nbool isReversed()
const override;
39 using iterable::isFrom;
40 nbool isFrom(
const tbicontainable& it)
const override;
42 nbool isEnd()
const override;
44 ncnt
next(ncnt step)
override;
45 ncnt prev(ncnt step)
override;
46 ncnt stepForward(ncnt step)
override;
47 ncnt stepBackward(ncnt step)
override;
49 const K* getKey()
const override;
51 template <
typename E>
const E* getKey()
const {
return getKey().template cast<E>(); }
53 using iterable::getVal;
56 template <
typename E> E* getVal() {
return getVal()
TO(template cast<E>()); }
59 void setVal(const V& new1) override;
62 tbicontainable<K, V>* getContainer() override;
65 me& _assign(const me& rhs);
66 nbool _onSame(const typeProvidable& rhs) const override;
70 void _nextToMatchParamType(typename
iterable::iterationType type);
71 ncnt _step(typename
iterable::iterationType type, ncnt step);
72 ncnt _iterate(typename
iterable::iterationType type);
Bidirectional iterator for key-value containers.
Definition: biter.hpp:9
ncnt next(ncnt step) override
void rel() override
once rel(), an iterator enters a state where it can never be reused again.
Definition: biterable.hpp:3
Definition: biteration.hpp:5
#define TO(fn)
Definition: to.hpp:171