Loading...
Searching...
No Matches
uiterable.hpp
Go to the documentation of this file.
1
7class iterable {
8 BY_ME(iterable)
9
10protected:
11 enum iterationType {
12 NEXT,
13 PREV,
14 FORWARD,
15 BACKWARD
16 };
17
18public:
19 virtual ~iterable() {}
20
21 virtual RSquare operator*() = 0;
22 const RSquare operator*() const BY_CONST_FUNC(operator*())
23
24 virtual nbool isEnd() const = 0;
25
26 virtual nbool isReversed() const = 0;
27
28 virtual void rel() = 0;
29
38 virtual ncnt next(ncnt step) { return isReversed() ? stepBackward(step) : stepForward(step); }
39
40 virtual ncnt prev(ncnt step) { return isReversed() ? stepForward(step) : stepBackward(step); }
41
42 virtual ncnt stepForward(ncnt step) = 0;
43 virtual ncnt stepBackward(ncnt step) = 0;
44
45 virtual R get() = 0;
46 const R get() const BY_CONST_FUNC(get())
47
48 virtual nbool isFrom(const tucontainable& it) const = 0;
49 nbool isFrom(const tucontainable* it) const BY_SIDE_FUNC(isFrom);
50
51 virtual tucontainable<T, R, RSquare>* getContainer() = 0;
52 const tucontainable<T, R, RSquare>* getContainer() const BY_CONST_FUNC(getContainer())
53};
Definition biterable.hpp:4
virtual ncnt next(ncnt step)
Definition biterable.hpp:32
to Top