27 : m_pPrev( this ), m_pNext( this )
32 m_pNext->m_pPrev = m_pPrev;
33 m_pPrev->m_pNext = m_pNext;
40 return m_pNext !=
this;
46 m_pNext = pInsertBefore;
47 m_pPrev = pInsertBefore->m_pPrev;
48 pInsertBefore->m_pPrev =
this;
49 m_pPrev->m_pNext =
this;
55 m_pPrev = pInsertAfter;
56 m_pNext = pInsertAfter->m_pNext;
57 pInsertAfter->m_pNext =
this;
58 m_pNext->m_pPrev =
this;
64 m_pPrev->m_pNext = this->m_pNext;
65 m_pNext->m_pPrev = this->m_pPrev;
105 while ( pCurrentNode != pNode )
109 pCurrentNode =
m_oRoot.m_pNext;
130 if ( pCNode == pCNode )
return TTRUE;
161 TSTATICASSERT( std::is_base_of<T2GenericDList::Node, T>::value );
235 for (
auto it =
Begin(); it !=
End(); it++ )
251 pItem->InsertBefore( &
m_oRoot );
256 pItem->InsertAfter( &
m_oRoot );
288 : m_pValue( a_pValue ) {}
#define TSTATICCAST(POINTERTYPE, VALUE)
#define TOSHI_NAMESPACE_START
#define TSTATICASSERT(...)
#define TOSHI_NAMESPACE_END
#define T2_DEFINE_ITERATOR(TYPE, NODE_TYPE)
#define T2_DEFINE_ITERATOR_FRIEND()
TBOOL IsInList(Node *pNode) const
void ClearBefore(Node *pNode)
void InsertBefore(Node *pInsertBefore)
void InsertAfter(Node *pInsertAfter)
Iterator Erase(Iterator iter)
void Delete(Iterator iter)
Toshi::T2Iterator< T, Node > Iterator
~T2DListNodeWrapper()=default
constexpr const T * operator->() const
constexpr T2DListNodeWrapper()=default
constexpr void SetNodeValue(T *a_pValue)
constexpr T2DListNodeWrapper & operator=(T *a_pValue)
constexpr T2DListNodeWrapper(T *a_pValue)
constexpr const T * GetNodeValue() const
constexpr T * operator->()
constexpr T * GetNodeValue()