acme
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages Concepts
array_iterator.h
1// From iterator.h as base by camilo on 2022-09-12 20:09 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5template < typename BASE_ITERATOR >
7 public BASE_ITERATOR
8{
9public:
10
11
12 using ITERATOR_TYPE = BASE_ITERATOR;
13
14
15 using ITEM = ITERATOR_TYPE::ITEM;
16
17
18 using ITERATOR = ::make_iterator < typename BASE_ITERATOR::ITERATOR >;
19 using CONST_ITERATOR = ::make_iterator < typename BASE_ITERATOR::CONST_ITERATOR >;
20 using THIS_ITERATOR = ::make_iterator < BASE_ITERATOR >;
21
22
23 using ITERATOR_TYPE::ITERATOR_TYPE;
24
25
26 constexpr ::collection::count operator - (const CONST_ITERATOR & iterator) const
27 {
28
29 return ::count_as_of_iterator(iterator.get(), ITERATOR_TYPE::get());
30
31 }
32
33
34 //constexpr bool operator == (const CONST_ITERATOR & iterator) const
35 //{
36
37 // return ITERATOR::get() == iterator.get();
38
39 //}
40
41
42 //constexpr std::strong_ordering operator <=> (const CONST_ITERATOR & iterator) const
43 //{
44
45 // return ITERATOR::get() <=> iterator.get();
46
47 //}
48
49
50 THIS_ITERATOR & operator ++()
51 {
52
53 ITERATOR_TYPE::m_p = ::next_as_of_iterator(ITERATOR_TYPE::get());
54
55 return *this;
56
57 }
58
59
60 THIS_ITERATOR operator ++(int)
61 {
62
63 ITERATOR_TYPE item(*this);
64
65 ++(*this);
66
67 return item;
68
69 }
70
71
72
73
74
75};
76
77
78
79template < typename TYPE >
81{
82
83 using type = ::make_array_iterator < ::iterator_base < TYPE > >;
84
85};
86
87
88template < typename TYPE >
89struct get_array_iterator< TYPE * >
90{
91
92 using type = TYPE *;
93
94};
95
96
97template < typename TYPE >
99{
100
101 using type = ::make_array_iterator < ::const_iterator_base < TYPE > >;
102
103};
104
105
106template < typename TYPE >
108{
109
110 using type = const TYPE *;
111
112};
113
114
115
116
117
118//template < typename TYPE >
119//constexpr bool range_is_ok(const TYPE * begin, const TYPE * end)
120//{
121//
122// return !::range_is_end(begin_end);
123//
124//}
125
126
127
Definition item.h:93
Definition array_iterator.h:8
Definition array_iterator.h:99
Definition array_iterator.h:81
Definition std_iterator.h:49