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