UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TIntrusiveDoubleLinkedListNode< InElementType, ContainerType > Class Template Reference

#include <IntrusiveDoubleLinkedList.h>

Public Types

using NodeType = TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >
 
using ElementType = InElementType
 

Public Member Functions

 TIntrusiveDoubleLinkedListNode ()
 
UE_FORCEINLINE_HINT void Reset ()
 
UE_FORCEINLINE_HINT bool IsInList () const
 
UE_FORCEINLINE_HINT ElementTypeGetNext () const
 
UE_FORCEINLINE_HINT ElementTypeGetPrev () const
 
void Remove ()
 
void InsertAfter (ElementType *NewPrev)
 
void InsertBefore (ElementType *NewNext)
 

Protected Member Functions

UE_FORCEINLINE_HINT ElementTypeGetThisElement ()
 
UE_FORCEINLINE_HINT const ElementTypeGetThisElement () const
 

Protected Attributes

ElementTypeNext
 
ElementTypePrev
 

Friends

class TIntrusiveDoubleLinkedListIterator< TIntrusiveDoubleLinkedListNode >
 
class TIntrusiveDoubleLinkedList< ElementType, ContainerType >
 

Detailed Description

template<class InElementType, class ContainerType = InElementType>
class TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >

Node of an intrusive double linked list Structs/classes must inherit this, to use it, e.g: struct FMyStruct : public TIntrusiveDoubleLinkedListNode<FMyStruct> TIntrusiveDoubleLinkedListNode can be inherited multiple times, ex: if ElementType needs to be stored in several lists at once by specifying a different ContainerType template parameter to distinguish the nodes.

Member Typedef Documentation

◆ ElementType

template<class InElementType , class ContainerType = InElementType>
using TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::ElementType = InElementType

◆ NodeType

template<class InElementType , class ContainerType = InElementType>
using TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::NodeType = TIntrusiveDoubleLinkedListNode<InElementType, ContainerType>

Constructor & Destructor Documentation

◆ TIntrusiveDoubleLinkedListNode()

template<class InElementType , class ContainerType = InElementType>
TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::TIntrusiveDoubleLinkedListNode ( )
inline

Member Function Documentation

◆ GetNext()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT ElementType * TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::GetNext ( ) const
inline

◆ GetPrev()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT ElementType * TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::GetPrev ( ) const
inline

◆ GetThisElement() [1/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT ElementType * TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::GetThisElement ( )
inlineprotected

◆ GetThisElement() [2/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT const ElementType * TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::GetThisElement ( ) const
inlineprotected

◆ InsertAfter()

template<class InElementType , class ContainerType = InElementType>
void TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::InsertAfter ( ElementType NewPrev)
inline

Insert this node after the specified node

◆ InsertBefore()

template<class InElementType , class ContainerType = InElementType>
void TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::InsertBefore ( ElementType NewNext)
inline

Insert this node before the specified node

◆ IsInList()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT bool TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::IsInList ( ) const
inline

◆ Remove()

template<class InElementType , class ContainerType = InElementType>
void TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::Remove ( )
inline

Removes this element from the list in constant time.

◆ Reset()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT void TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::Reset ( )
inline

Friends And Related Symbol Documentation

◆ TIntrusiveDoubleLinkedList< ElementType, ContainerType >

template<class InElementType , class ContainerType = InElementType>
friend class TIntrusiveDoubleLinkedList< ElementType, ContainerType >
friend

◆ TIntrusiveDoubleLinkedListIterator< TIntrusiveDoubleLinkedListNode >

template<class InElementType , class ContainerType = InElementType>
friend class TIntrusiveDoubleLinkedListIterator< TIntrusiveDoubleLinkedListNode >
friend

Member Data Documentation

◆ Next

template<class InElementType , class ContainerType = InElementType>
ElementType* TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::Next
protected

◆ Prev

template<class InElementType , class ContainerType = InElementType>
ElementType* TIntrusiveDoubleLinkedListNode< InElementType, ContainerType >::Prev
protected

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