8#ifndef _ADTF_UCOM_ANT_ITERATOR_INTERFACE_INCLUDES_HEADER_
9#define _ADTF_UCOM_ANT_ITERATOR_INTERFACE_INCLUDES_HEADER_
87 typedef typename std::conditional<
88 std::is_const<value_type>::value,
95 iterator_interface_pointer m_pIt;
110 return oLHS.operator->() < oRHS.operator->();
138 return !(oLHS > oRHS);
152 return !(oLHS < oRHS);
166 return !(oLHS < oRHS) && !(oLHS > oRHS);
180 return !(oLHS == oRHS);
188template<
typename T,
template<
typename>
class IteratorType =
forward_iterator>
195 typedef typename std::conditional <
196 std::is_const<value_type>::value,
226 template<
typename,
template<
typename>
class>
friend class cForwardIterator;
235 template<
typename IteratorInterfaceType>
236 static self_type create(IteratorInterfaceType& o_oIterator)
239 oTmpContainer.m_oBegin.m_pIt = &o_oIterator;
240 oTmpContainer.m_oBegin.m_pCur = o_oIterator.Begin();
241 oTmpContainer.m_oEnd.m_pIt = &o_oIterator;
242 oTmpContainer.m_oEnd.m_pCur = o_oIterator.End();
243 return oTmpContainer;
260 typedef typename std::conditional <
261 std::is_const<value_type>::value,
298 oTmpContainer.m_oBegin = i_oBegin;
299 oTmpContainer.m_oEnd = i_oEnd;
300 return oTmpContainer;
362 virtual T*
Forward(
size_t i_nIncrement)
const = 0;
369 virtual T*
Backward(
size_t i_nDecrement)
const = 0;
Bidirectional iterator interface details Additionally providing method Previous() for POD bidirection...
Definition iterator_intf.h:334
~IBidirectionalIterator()=default
Default destructor.
virtual T * Previous() const =0
Decrement iterator by one - may be used with mutable member iterators.
Forward iterator interface providing method Next() usable by POD forward iterators.
Definition iterator_intf.h:314
virtual T * Next() const =0
Increment iterator by one - may be used with mutable member iterators.
~IForwardIterator()=default
Default destructor.
Random access iterator interface.
Definition iterator_intf.h:355
~IRandomAccessIterator()=default
Default destructor.
virtual T * Backward(size_t i_nDecrement) const =0
Decrement iterator by n - may be used with mutable member iterators.
virtual T * Forward(size_t i_nIncrement) const =0
Increment iterator by n - may be used with mutable member iterators.
Namespace for all functionality of the ADTF UCOM SDK provided since v3.0.
Definition test_runtime.h:14
bool operator>(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Greater-than operator for forward_iterator.
Definition iterator_intf.h:122
bool operator<(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Less-than operator for forward_iterator.
Definition iterator_intf.h:108
bool operator>=(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Greater-than-or-equal operator for forward_iterator.
Definition iterator_intf.h:150
bool operator<=(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Less-than-or-equal operator for forward_iterator.
Definition iterator_intf.h:136
bool operator!=(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Inequality operator for forward_iterator.
Definition iterator_intf.h:178
bool operator==(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Equality operator for forward_iterator.
Definition iterator_intf.h:164
Namespace for the ADTF uCOM SDK.
Definition adtf_system.h:324
ant::pointer_iterator< T > pointer_iterator
Alias always bringing the latest version of ant::pointer_iterator into scope.
Definition iterator_intf.h:396
ant::IRandomAccessIterator< T > IRandomAccessIterator
Alias always bringing the latest version of ant::IRandomAccessIterator into scope.
Definition iterator_intf.h:388
ant::IForwardIterator< T > IForwardIterator
Alias always bringing the latest version of ant::IForwardIterator into scope.
Definition iterator_intf.h:380
ant::iterator_adapter< T, IteratorType > iterator_adapter
Alias always bringing the latest version of ant::iterator_adapter into scope.
Definition iterator_intf.h:392
ant::IBidirectionalIterator< T > IBidirectionalIterator
Alias always bringing the latest version of ant::IBidirectionalIterator into scope.
Definition iterator_intf.h:384
ant::forward_iterator< T > forward_iterator
Alias always bringing the latest version of ant::forward_iterator into scope.
Definition iterator_intf.h:400
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14
POD forward iterator type using a forward iterator interface to iterate over a sequence.
Definition iterator_intf.h:38
friend struct iterator_adapter
Alias always bringing the latest version of ant::iterator_adapter into scope.
Definition iterator_intf.h:93
const T & const_reference
const value reference type
Definition iterator_intf.h:45
const_pointer operator->() const
Pointer operator const version.
Definition iterator_intf.h:71
pointer operator->()
Pointer operator.
Definition iterator_intf.h:65
T value_type
value type
Definition iterator_intf.h:40
std::ptrdiff_t difference_type
pointer difference type
Definition iterator_intf.h:47
std::forward_iterator_tag iterator_category
category of the iterator
Definition iterator_intf.h:46
forward_iterator< T > self_type
self type
Definition iterator_intf.h:41
self_type operator++()
Pre-increment operator using iterator interface method Next()
Definition iterator_intf.h:53
reference operator*()
Dereference operator.
Definition iterator_intf.h:77
self_type operator++(int32_t)
Post-increment operator.
Definition iterator_intf.h:59
const T * const_pointer
const value pointer type
Definition iterator_intf.h:43
T & reference
value reference type
Definition iterator_intf.h:44
const_reference operator*() const
Dereference operator const version.
Definition iterator_intf.h:83
T * pointer
value pointer type
Definition iterator_intf.h:42
std::conditional< std::is_const< value_type >::value, const_iterator, value_type * >::type iterator
iterator type
Definition iterator_intf.h:263
iterator_adapter< value_type, pointer_iterator > self_type
self type
Definition iterator_intf.h:258
iterator end() const
Get pointer to the end of the container sequence (STL compliant)
Definition iterator_intf.h:275
const_iterator cend() const
Get const pointer to the end of the container sequence (STL compliant)
Definition iterator_intf.h:287
static self_type create(iterator i_oBegin, iterator i_oEnd)
Create the adapter by assigning begin and end iterators (pointers)
Definition iterator_intf.h:295
T value_type
value type
Definition iterator_intf.h:257
const_iterator cbegin() const
Get const pointer to the beginning of the container sequence (STL compliant)
Definition iterator_intf.h:281
const value_type * const_iterator
const iterator type
Definition iterator_intf.h:259
iterator begin() const
Get pointer to the beginning of the container sequence (STL compliant)
Definition iterator_intf.h:269
Adapter for begin and end iterators - usable as return and parameter value in interfaces.
Definition iterator_intf.h:190
IteratorType< const value_type > const_iterator
Definition iterator_intf.h:194
iterator_adapter< value_type, IteratorType > self_type
self type
Definition iterator_intf.h:193
const_iterator cend() const
Get const iterator to the end of the container sequence (STL compliant)
Definition iterator_intf.h:222
iterator end() const
Get iterator to the end of the container sequence (STL compliant)
Definition iterator_intf.h:210
const_iterator cbegin() const
Get const iterator to the beginning of the container sequence (STL compliant)
Definition iterator_intf.h:216
T value_type
value type
Definition iterator_intf.h:192
std::conditional< std::is_const< value_type >::value, const_iterator, IteratorType< value_type > >::type iterator
Definition iterator_intf.h:198
iterator begin() const
Get iterator to the beginning of the container sequence (STL compliant)
Definition iterator_intf.h:204
Empty struct template to specialize implementations of iterator interfaces.
Definition iterator_intf.h:28