로딩중...
검색중...
일치하는것 없음
uiter.hpp
이 파일의 문서화 페이지로 가기
1
2#include <type_traits>
3
5
12class iter: public iterable, public clonable, public typeProvidable {
13 BY(CLASS(iter))
14 friend class iteration;
15 template <typename E, typename TACTIC> friend class tnarr;
16 template <typename K, typename V, typename defaultContainer> friend class tnchain;
17
18public:
19 explicit iter();
20 explicit iter(iteration* newStep);
21 iter(const me& rhs);
22
23public:
24 me operator+(ncnt step);
25 me& operator++();
26 me operator++(int);
27 me& operator+=(ncnt step);
28
29 using iterable::operator*;
30 RSquare operator*() override;
31
32 typename std::remove_reference<R>::type operator->();
33 const typename std::remove_reference<R>::type operator->() const BY_CONST_FUNC(operator->())
34 me& operator=(const me& rhs);
35 explicit operator nbool() const;
36
37public:
38 nbool isReversed() const override;
39
43 void rel() override;
44
45 using iterable::isFrom;
46 nbool isFrom(const tucontainable& it) const override;
47
48 nbool isEnd() const override;
49 ncnt next(ncnt step) override;
50 ncnt prev(ncnt step) override;
51 ncnt stepForward(ncnt step) override;
52 ncnt stepBackward(ncnt step) override;
53
54 using iterable::get;
55 R get() override;
56
57 template <typename E> E* get() { return get() TO(template cast<E>()); }
58
59 tucontainable<T, R, RSquare>* getContainer() override;
60 const tucontainable<T, R, RSquare>* getContainer() const BY_CONST_FUNC(getContainer())
61
62private:
63 me& _assign(const me& rhs);
64 nbool _onSame(const typeProvidable& rhs) const override;
65
70 void _nextToMatchParamType(typename iterable::iterationType type);
71 ncnt _step(typename iterable::iterationType type, ncnt step);
72 ncnt _iterate(typename iterable::iterationType type, ncnt step);
73
74protected:
75 tstr<iteration> _iteration;
76};
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