Loading...
Searching...
No Matches
biter.hpp
Go to the documentation of this file.
1
3
10class iter: public iterable, public clonable, public typeProvidable {
11 BY(CLASS(iter))
12 template <typename K1, typename V1, typename defaultContainer1> friend class tnchain;
13 template <typename K1, typename V1, typename TACTIC> friend class tnmap;
14
15public:
16 explicit iter();
17 explicit iter(iteration* newStep);
18
19 iter(const me& rhs);
20
21public:
22 me operator+(ncnt step);
23 me& operator++();
24 me operator++(int);
25 me& operator+=(ncnt step);
26 V& operator*();
27 V* operator->();
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;
32
33public:
34 nbool isReversed() const override;
35
39 void rel() override;
40
41 using iterable::isFrom;
42 nbool isFrom(const tbicontainable& it) const override;
43
44 nbool isEnd() const override;
45
46 ncnt next(ncnt step) override;
47 ncnt prev(ncnt step) override;
48 ncnt stepForward(ncnt step) override;
49 ncnt stepBackward(ncnt step) override;
50
51 const K* getKey() const override;
52
53 template <typename E> const E* getKey() const { return getKey().template cast<E>(); }
54
55 using iterable::getVal;
56 V* getVal() override;
57
58 template <typename E> E* getVal() { return getVal() TO(template cast<E>()); }
59
60 using iterable::setVal;
61 void setVal(const V& new1) override;
62
63 using iterable::getContainer;
64 tbicontainable<K, V>* getContainer() override;
65
66private:
67 me& _assign(const me& rhs);
68 nbool _onSame(const typeProvidable& rhs) const override;
69
74 void _nextToMatchParamType(typename iterable::iterationType type);
75 ncnt _step(typename iterable::iterationType type, ncnt step);
76 ncnt _iterate(typename iterable::iterationType type);
77
78protected:
79 tstr<iteration> _iteration;
80};
Bidirectional iterator for key-value containers.
Definition biter.hpp:10
ncnt next(ncnt step) override
void rel() override
Definition biterable.hpp:4
Definition biteration.hpp:5
to Top