ADTF
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
simplepointeriterator.h
Go to the documentation of this file.
1
7#ifndef _SIMPLE_POINTER_ITERATOR_CLASS_HEADER_
8#define _SIMPLE_POINTER_ITERATOR_CLASS_HEADER_
9
10#include <iterator>
11#include <cstddef>
12
13namespace A_UTILS_NS
14{
15
21template<typename TypeT>
23{
24protected:
26 TypeT* m_pData;
27public:
29 typedef std::random_access_iterator_tag iterator_category;
31 typedef TypeT value_type;
33 typedef std::ptrdiff_t difference_type;
35 typedef TypeT& reference;
37 typedef TypeT* pointer;
38
43 {
44 }
45
51 template<typename T2>
55
62 {
63 }
64
72 template<typename T2>
74 {
75 m_pData = &(*r); return *this;
76 }
77
80 {
81 ++m_pData; return *this;
82 }
83
85 {
86 --m_pData; return *this;
87 }
88
93
98
103
105 {
106 m_pData += n;
107 return *this;
108 }
109
114
116 {
117 m_pData -= n;
118 return *this;
119 }
120
122 {
123 return *m_pData;
124 }
125
127 {
128 return *m_pData;
129 }
130
132 {
133 return m_pData[n];
134 }
135
137 template<typename T>
139
141 template<typename T>
143
145 template<typename T>
147
149 template<typename T>
151
153 template<typename T>
155
157 template<typename T>
159
161 template<typename T>
164
166 template<typename T>
169};
170
172template<typename T>
174{
175 return (r1.m_pData == r2.m_pData);
176}
177
179template<typename T>
181{
182 return (r1.m_pData != r2.m_pData);
183}
184
186template<typename T>
188{
189 return (r1.m_pData < r2.m_pData);
190}
191
193template<typename T>
195{
196 return (r1.m_pData > r2.m_pData);
197}
198
200template<typename T>
202{
203 return (r1.m_pData <= r2.m_pData);
204}
205
207template<typename T>
209{
210 return (r1.m_pData >= r2.m_pData);
211}
212
214template<typename T>
220
222template<typename T>
228
229
230
231
232
233} // namespace A_UTILS_NS
234
235
236
237
238#endif // _SIMPLE_POINTER_ITERATOR_CLASS_HEADER_
int tInt
type definition for signed integer value (platform and compiler dependent type).
friend bool operator!=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define unequal operator between iterators.
simple_pointer_iterator & operator++()
Define operator prefix increment.
friend bool operator>=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define greater or equal operator between iterators.
simple_pointer_iterator()
Constructor that initalizes the iterator as nullpointer.
friend bool operator>(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define greater than operator between iterators.
TypeT * pointer
short typedefinition for pointer type. Type to represent a pointer to an element pointed by the itera...
simple_pointer_iterator & operator=(const simple_pointer_iterator< T2 > &r)
Assignment operator.
TypeT value_type
short typedefinition for value type. Type of elements pointed by the iterator.
simple_pointer_iterator(pointer pData)
Constructor that initalizes the iterator with a pointer.
simple_pointer_iterator & operator--()
Define operator prefix decrement.
simple_pointer_iterator(const simple_pointer_iterator< T2 > &r)
Constructor that initalizes the iterator pointing to the referenced data.
friend bool operator<(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define lesser than operator between iterators.
std::random_access_iterator_tag iterator_category
definition of iterator category as random-access iterator
reference operator->() const
Define dereference operator.
simple_pointer_iterator operator-(const difference_type &n) const
Define arithmetic - operation between iterators.
simple_pointer_iterator operator++(tInt)
Define operator postfix increment.
simple_pointer_iterator & operator-=(const difference_type &n)
Define compound assignment operation -=.
simple_pointer_iterator & operator+=(const difference_type &n)
Define compound assignment operation +=.
friend bool operator<=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define lesser or equal operator between iterators.
reference operator*() const
Define dereference operator.
friend bool operator==(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define equal operator between iterators.
simple_pointer_iterator operator--(tInt)
Define operator postfix decrement.
friend simple_pointer_iterator< T >::difference_type operator-(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define arithmetic - operation between iterators.
std::ptrdiff_t difference_type
short typedefinition for difference type. Type to represent the difference between two iterators.
TypeT & reference
short typedefinition for reference type. Type to represent a reference to an element pointed by the i...
simple_pointer_iterator operator+(const difference_type &n) const
Define arithmetic + operation between iterators.
reference operator[](const difference_type &n) const
Define offset dereference operator.
friend simple_pointer_iterator< T >::difference_type operator+(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define arithmetic + operation between iterators.
ADTF A_UTIL Namespace - Within adtf this is used as util or adtf_util.
Definition d_ptr.h:11
bool operator>=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define greater or equal to operator between iterators.
bool operator>(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define greater than operator between iterators.
bool operator<(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define lesser than operator between iterators.
tBool operator!=(const cMultiArrayIndex &o_A, const cMultiArrayIndex &o_B)
Comparison operator.
tBool operator==(const cMultiArrayIndex &o_A, const cMultiArrayIndex &o_B)
Comparison operator.
bool operator<=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define lesser or equal to operator between iterators.
simple_pointer_iterator< T >::difference_type operator-(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define arithmetic - operation between iterators.
simple_pointer_iterator< T >::difference_type operator+(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define arithmetic + operation between iterators.