26 #include "../error/exceptions.hpp"
28 #include "value_ref.hpp"
137 typedef typename iterator_types::ptr_type
pointer;
163 _container(container),
170 _container(i._container),
177 _container(i._container),
180 i._container =
nullptr;
198 explicit operator bool()
const
203 (_state >= ssize_t(_container->size()))||
223 return (*_container)[
_state];
243 return (*_container)[
_state];
257 iterator_type temp = *
this;
274 iterator_type tmp = *
this;
302 if(_state != a.
_state)
return false;
311 if((*
this)==a)
return false;
326 return _state <= b.
_state;
340 return _state >= b.
_state;
362 template<
int const_flag>
388 template<
int const_flag>
407 template<
int const_flag>
428 template<
int const_flag>
bool operator==(const iterator_type &a)
comparsion operator - equality
Definition: array_iterator.hpp:296
value_ref return_type
return type for the dereferencing operator
Definition: array_iterator.hpp:71
iterator_type & operator-=(ssize_t i)
compound assignment with -=
Definition: array_iterator.hpp:289
array_iterator()
default constructor
Definition: array_iterator.hpp:150
type map for the array_iterator template
Definition: array_iterator.hpp:49
value_ref * ptr_type
pointer type for -> operator
Definition: array_iterator.hpp:73
#define EXCEPTION_RECORD
macro creating an instance of ExceptionRecord
Definition: exceptions.hpp:48
value_ref value_type
reference type of the element
Definition: array_iterator.hpp:69
type erasure array types
Definition: array.hpp:74
const value * ptr_type
pointer type for -> operator
Definition: array_iterator.hpp:100
iterator_type operator++(int)
increment iterator position
Definition: array_iterator.hpp:255
iterator_type & operator++()
increment iterator position
Definition: array_iterator.hpp:247
array_iterator_types< const_flag > iterator_types
iterator type
Definition: array_iterator.hpp:125
array_iterator< const_flag > operator+(ssize_t a, const array_iterator< const_flag > &b)
add offset to iterator
Definition: array_iterator.hpp:389
array_iterator_types< const_flag >::cont_ptr _container
pointer to the container object
Definition: array_iterator.hpp:128
bool operator>=(const iterator_type &b)
greater equal than operator
Definition: array_iterator.hpp:338
array * cont_ptr
container pointer
Definition: array_iterator.hpp:67
iterator_types::ptr_type pointer
pointer type the iterator provides
Definition: array_iterator.hpp:137
Definition: add_op.hpp:29
ssize_t _state
actual position state of the iterator
Definition: array_iterator.hpp:131
array iterator
Definition: array_iterator.hpp:121
array_iterator(iterator_type &&i)
move constructor
Definition: array_iterator.hpp:176
array_iterator(cptr_type container, size_t state=0)
constructor
Definition: array_iterator.hpp:162
bool operator!=(const iterator_type &a)
comparison operator - inequality
Definition: array_iterator.hpp:309
ssize_t difference_type
difference type of the iterator
Definition: array_iterator.hpp:143
array_iterator< const_flag > iterator_type
iterator type
Definition: array_iterator.hpp:147
array_iterator_types< const_flag >::return_type operator*()
dereferencing operator
Definition: array_iterator.hpp:218
array_iterator_types< const_flag >::return_type operator*() const
dereferencing operator
Definition: array_iterator.hpp:237
iterator_types::value_type value_type
value type of the container
Definition: array_iterator.hpp:135
ssize_t operator-(const array_iterator< const_flag > &a, const array_iterator< const_flag > &b)
subtract two iterators
Definition: array_iterator.hpp:429
iterator_type & operator--()
decrement operators
Definition: array_iterator.hpp:264
array_iterator(const iterator_type &i)
copy constructor
Definition: array_iterator.hpp:169
iterator_types::ref_type reference
reference type the iterator provides
Definition: array_iterator.hpp:139
iterator error
Definition: exceptions.hpp:692
value_ref ref_type
reference type
Definition: array_iterator.hpp:75
value value_type
value type of the iterator
Definition: array_iterator.hpp:96
bool operator>(const iterator_type &b)
greater than operator
Definition: array_iterator.hpp:331
iterator_types::cont_ptr cptr_type
pointer type of the container
Definition: array_iterator.hpp:141
const value & ref_type
reference type
Definition: array_iterator.hpp:102
iterator_type operator--(int)
decrement operators
Definition: array_iterator.hpp:272
value return_type
return type for dereferencing operator
Definition: array_iterator.hpp:98
type erasure for references to POD data
Definition: value_ref.hpp:43
bool operator<=(const iterator_type &b)
lesser than equal operator
Definition: array_iterator.hpp:324
type erasure for POD data
Definition: value.hpp:46
iterator_type & operator+=(ssize_t i)
compound assignment with +=
Definition: array_iterator.hpp:281
const array * cont_ptr
container pointer
Definition: array_iterator.hpp:94
bool operator<(const iterator_type &b)
lesser than operator
Definition: array_iterator.hpp:317
std::random_access_iterator_tag iterator_category
type of iterator
Definition: array_iterator.hpp:145
ssize_t state() const
get state of the iterator
Definition: array_iterator.hpp:344