OpenBarnyard
 
Loading...
Searching...
No Matches
T2Iterator< T, Node > Class Template Reference

#include <T2Iterator.h>

Public Member Functions

 TSTATICASSERT (std::is_base_of< Node, T >::value)
 
 T2Iterator ()
 
 T2Iterator (Node *pPtr)
 
 T2Iterator (T *pPtr)
 
 T2Iterator (const T2Iterator &other)
 
T * Get ()
 
const T * Get () const
 
T & operator* () noexcept
 
const T & operator* () const noexcept
 
T2Iterator Next () const
 
T2Iterator Prev () const
 
void operator= (const T2Iterator &other)
 
void operator= (T *pPtr)
 
T * operator-> () const
 
 operator T* () const
 
T2Iterator operator++ (TINT)
 
T2Iterator operator-- (TINT)
 
T2Iterator operator++ ()
 
T2Iterator operator-- ()
 

Detailed Description

template<class T, class Node>
class T2Iterator< T, Node >

Definition at line 25 of file T2Iterator.h.

Constructor & Destructor Documentation

◆ T2Iterator() [1/4]

template<class T, class Node>
T2Iterator< T, Node >::T2Iterator ( )
inline

Definition at line 30 of file T2Iterator.h.

31 {
32 m_pPtr = TNULL;
33 }

◆ T2Iterator() [2/4]

template<class T, class Node>
T2Iterator< T, Node >::T2Iterator ( Node * pPtr)
inline

Definition at line 35 of file T2Iterator.h.

36 {
37 m_pPtr = TSTATICCAST( T, pPtr );
38 }
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69

◆ T2Iterator() [3/4]

template<class T, class Node>
T2Iterator< T, Node >::T2Iterator ( T * pPtr)
inline

Definition at line 40 of file T2Iterator.h.

41 {
42 m_pPtr = pPtr;
43 }

◆ T2Iterator() [4/4]

template<class T, class Node>
T2Iterator< T, Node >::T2Iterator ( const T2Iterator< T, Node > & other)
inline

Definition at line 45 of file T2Iterator.h.

46 {
47 m_pPtr = other.m_pPtr;
48 }

Member Function Documentation

◆ Get() [1/2]

template<class T, class Node>
T * T2Iterator< T, Node >::Get ( )
inline

Definition at line 50 of file T2Iterator.h.

51 {
52 return m_pPtr;
53 }

◆ Get() [2/2]

template<class T, class Node>
const T * T2Iterator< T, Node >::Get ( ) const
inline

Definition at line 55 of file T2Iterator.h.

56 {
57 return m_pPtr;
58 }

◆ Next()

template<class T, class Node>
T2Iterator T2Iterator< T, Node >::Next ( ) const
inline

Definition at line 70 of file T2Iterator.h.

71 {
72 TASSERT( m_pPtr != TNULL );
73 return T2Iterator{ TSTATICCAST( Node, m_pPtr )->Next() };
74 }
#define TASSERT(X,...)
Definition Defines.h:138

◆ operator T*()

template<class T, class Node>
T2Iterator< T, Node >::operator T* ( ) const
inline

Definition at line 98 of file T2Iterator.h.

99 {
100 TASSERT( m_pPtr != TNULL );
101 return TSTATICCAST( T, m_pPtr );
102 }

◆ operator*() [1/2]

template<class T, class Node>
const T & T2Iterator< T, Node >::operator* ( ) const
inlinenoexcept

Definition at line 65 of file T2Iterator.h.

66 {
67 return *m_pPtr;
68 }

◆ operator*() [2/2]

template<class T, class Node>
T & T2Iterator< T, Node >::operator* ( )
inlinenoexcept

Definition at line 60 of file T2Iterator.h.

61 {
62 return *m_pPtr;
63 }

◆ operator++() [1/2]

template<class T, class Node>
T2Iterator T2Iterator< T, Node >::operator++ ( )
inline

Definition at line 120 of file T2Iterator.h.

121 {
122 TASSERT( m_pPtr != TNULL );
123 m_pPtr = TSTATICCAST( T, TSTATICCAST( Node, m_pPtr )->Next() );
124 return T2Iterator{ m_pPtr };
125 }
T2Iterator Next() const
Definition T2Iterator.h:70

◆ operator++() [2/2]

template<class T, class Node>
T2Iterator T2Iterator< T, Node >::operator++ ( TINT )
inline

Definition at line 104 of file T2Iterator.h.

105 {
106 TASSERT( m_pPtr != TNULL );
107 T2Iterator old = m_pPtr;
108 m_pPtr = TSTATICCAST( T, TSTATICCAST( Node, m_pPtr )->Next() );
109 return old;
110 }

◆ operator--() [1/2]

template<class T, class Node>
T2Iterator T2Iterator< T, Node >::operator-- ( )
inline

Definition at line 127 of file T2Iterator.h.

128 {
129 TASSERT( m_pPtr != TNULL );
130 m_pPtr = TSTATICCAST( T, TSTATICCAST( Node, m_pPtr )->Prev() );
131 return T2Iterator{ m_pPtr };
132 }
T2Iterator Prev() const
Definition T2Iterator.h:76

◆ operator--() [2/2]

template<class T, class Node>
T2Iterator T2Iterator< T, Node >::operator-- ( TINT )
inline

Definition at line 112 of file T2Iterator.h.

113 {
114 TASSERT( m_pPtr != TNULL );
115 T2Iterator old = m_pPtr;
116 m_pPtr = TSTATICCAST( T, TSTATICCAST( Node, m_pPtr )->Prev() );
117 return old;
118 }

◆ operator->()

template<class T, class Node>
T * T2Iterator< T, Node >::operator-> ( ) const
inline

Definition at line 92 of file T2Iterator.h.

93 {
94 TASSERT( m_pPtr != TNULL );
95 return m_pPtr;
96 }

◆ operator=() [1/2]

template<class T, class Node>
void T2Iterator< T, Node >::operator= ( const T2Iterator< T, Node > & other)
inline

Definition at line 82 of file T2Iterator.h.

83 {
84 m_pPtr = other.m_pPtr;
85 }

◆ operator=() [2/2]

template<class T, class Node>
void T2Iterator< T, Node >::operator= ( T * pPtr)
inline

Definition at line 87 of file T2Iterator.h.

88 {
89 m_pPtr = pPtr;
90 }

◆ Prev()

template<class T, class Node>
T2Iterator T2Iterator< T, Node >::Prev ( ) const
inline

Definition at line 76 of file T2Iterator.h.

77 {
78 TASSERT( m_pPtr != TNULL );
79 return T2Iterator{ TSTATICCAST( Node, m_pPtr )->Prev() };
80 }

◆ TSTATICASSERT()

template<class T, class Node>
T2Iterator< T, Node >::TSTATICASSERT ( std::is_base_of< Node, T >::value )

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