Horizon Official Technical Documentation
Horizon::Structures::LinkedList::Head::Iterator< _Ty > Class Template Reference

#include <Head.hpp>

Public Types

typedef std::bidirectional_iterator_tag iterator_category
 
typedef _Ty value_type
 
typedef _Ty * pointer
 
typedef _Ty const * const_pointer
 
typedef _Ty & reference
 
typedef _Ty const & const_reference
 

Public Member Functions

 Iterator ()
 
 Iterator (pointer _Pnode)
 
Iteratoroperator= (Iterator const &_Right)
 
Iteratoroperator= (const_pointer const &_Right)
 
reference operator* ()
 
pointer operator-> ()
 
Iteratoroperator++ ()
 
Iterator operator++ (int)
 
Iteratoroperator-- ()
 
Iterator operator-- (int)
 
bool operator== (Iterator const &_Right) const
 
bool operator!= (Iterator const &_Right) const
 
bool operator== (pointer const &_Right) const
 
bool operator!= (pointer const &_Right) const
 
bool operator== (const_reference _Right) const
 
bool operator!= (const_reference _Right) const
 
pointer _Mynode ()
 

Protected Attributes

pointer _Ptr
 

Member Typedef Documentation

◆ const_pointer

template<class _Ty >
typedef _Ty const* Horizon::Structures::LinkedList::Head::Iterator< _Ty >::const_pointer

◆ const_reference

template<class _Ty >
typedef _Ty const& Horizon::Structures::LinkedList::Head::Iterator< _Ty >::const_reference

◆ iterator_category

template<class _Ty >
typedef std::bidirectional_iterator_tag Horizon::Structures::LinkedList::Head::Iterator< _Ty >::iterator_category

◆ pointer

template<class _Ty >
typedef _Ty* Horizon::Structures::LinkedList::Head::Iterator< _Ty >::pointer

◆ reference

template<class _Ty >
typedef _Ty& Horizon::Structures::LinkedList::Head::Iterator< _Ty >::reference

◆ value_type

template<class _Ty >
typedef _Ty Horizon::Structures::LinkedList::Head::Iterator< _Ty >::value_type

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<class _Ty >
Horizon::Structures::LinkedList::Head::Iterator< _Ty >::Iterator ( )
inline
105 : _Ptr(nullptr)
106 { // construct with null node pointer
107 }
pointer _Ptr
Definition: Head.hpp:197

◆ Iterator() [2/2]

template<class _Ty >
Horizon::Structures::LinkedList::Head::Iterator< _Ty >::Iterator ( pointer  _Pnode)
inline
109 : _Ptr(_Pnode)
110 { // construct with node pointer _Pnode
111 }

Member Function Documentation

◆ _Mynode()

template<class _Ty >
pointer Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Mynode ( )
inline
192 { // return node pointer
193 return (_Ptr);
194 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator!=() [1/3]

template<class _Ty >
bool Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator!= ( const_reference  _Right) const
inline
187 { // test for reference equality
188 return (_Ptr != &_Right);
189 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator!=() [2/3]

template<class _Ty >
bool Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator!= ( Iterator< _Ty > const &  _Right) const
inline
167 { // test for iterator inequality
168 return (!(*this == _Right));
169 }

◆ operator!=() [3/3]

template<class _Ty >
bool Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator!= ( pointer const &  _Right) const
inline
177 { // test for pointer equality
178 return (!(*this == _Right));
179 }

◆ operator*()

template<class _Ty >
reference Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator* ( )
inline
126 { // return designated value
127 return *_Ptr;
128 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator++() [1/2]

template<class _Ty >
Iterator & Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator++ ( )
inline
136 { // preincrement
137 _Ptr = static_cast<pointer>(_Ptr->next());
138 return (*this);
139 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator++() [2/2]

template<class _Ty >
Iterator Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator++ ( int  )
inline
142 { // postincrement
143 Iterator<_Ty> _Tmp = *this;
144 ++*this;
145 return (_Tmp);
146 }

◆ operator--() [1/2]

template<class _Ty >
Iterator & Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator-- ( )
inline
149 { // predecrement
150 _Ptr = static_cast<pointer>(_Ptr->prev());
151 return (*this);
152 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator--() [2/2]

template<class _Ty >
Iterator Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator-- ( int  )
inline
155 { // postdecrement
156 Iterator<_Ty> _Tmp = *this;
157 --*this;
158 return (_Tmp);
159 }

◆ operator->()

template<class _Ty >
pointer Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator-> ( )
inline
131 { // return pointer to class object
132 return _Ptr;
133 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator=() [1/2]

template<class _Ty >
Iterator & Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator= ( const_pointer const &  _Right)
inline
120 {
121 _Ptr = pointer(_Right);
122 return *this;
123 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator=() [2/2]

template<class _Ty >
Iterator & Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator= ( Iterator< _Ty > const &  _Right)
inline
114 {
115 _Ptr = _Right._Ptr;
116 return *this;
117 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator==() [1/3]

template<class _Ty >
bool Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator== ( const_reference  _Right) const
inline
182 { // test for reference equality
183 return (_Ptr == &_Right);
184 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator==() [2/3]

template<class _Ty >
bool Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator== ( Iterator< _Ty > const &  _Right) const
inline
162 { // test for iterator equality
163 return (_Ptr == _Right._Ptr);
164 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

◆ operator==() [3/3]

template<class _Ty >
bool Horizon::Structures::LinkedList::Head::Iterator< _Ty >::operator== ( pointer const &  _Right) const
inline
172 { // test for pointer equality
173 return (_Ptr != _Right);
174 }

References Horizon::Structures::LinkedList::Head::Iterator< _Ty >::_Ptr.

Member Data Documentation

◆ _Ptr


The documentation for this class was generated from the following file: