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

#include <IntrusiveDoubleLinkedList.h>

Public Types

using ElementType = InElementType
 
using NodeType = TIntrusiveDoubleLinkedListNode< ElementType, ContainerType >
 
using TIterator = TIntrusiveDoubleLinkedListIterator< NodeType >
 
using TConstIterator = TIntrusiveDoubleLinkedListIterator< const NodeType >
 

Public Member Functions

UE_FORCEINLINE_HINT TIntrusiveDoubleLinkedList ()
 
UE_FORCEINLINE_HINT TIntrusiveDoubleLinkedList (const TIntrusiveDoubleLinkedList &)=delete
 
UE_FORCEINLINE_HINT TIntrusiveDoubleLinkedListoperator= (const TIntrusiveDoubleLinkedList &)=delete
 
UE_FORCEINLINE_HINT void Reset ()
 
UE_FORCEINLINE_HINT bool IsEmpty () const
 
UE_FORCEINLINE_HINT bool IsFilled () const
 
UE_FORCEINLINE_HINT void AddHead (ElementType *Element)
 
void AddHead (TIntrusiveDoubleLinkedList &&Other)
 
UE_FORCEINLINE_HINT void AddTail (ElementType *Element)
 
void AddTail (TIntrusiveDoubleLinkedList &&Other)
 
UE_FORCEINLINE_HINT ElementTypeGetHead ()
 
UE_FORCEINLINE_HINT ElementTypeGetTail ()
 
ElementTypePopHead ()
 
ElementTypePopTail ()
 
UE_FORCEINLINE_HINT TIterator begin ()
 
UE_FORCEINLINE_HINT TConstIterator begin () const
 
UE_FORCEINLINE_HINT TIterator end ()
 
UE_FORCEINLINE_HINT TConstIterator end () const
 

Static Public Member Functions

static UE_FORCEINLINE_HINT void Remove (ElementType *Element)
 
static UE_FORCEINLINE_HINT void InsertAfter (ElementType *InsertThis, ElementType *AfterThis)
 
static UE_FORCEINLINE_HINT void InsertBefore (ElementType *InsertThis, ElementType *BeforeThis)
 

Detailed Description

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

Intrusive double linked list.

See also
TDoubleLinkedList

Member Typedef Documentation

◆ ElementType

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

◆ NodeType

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

◆ TConstIterator

template<class InElementType , class ContainerType = InElementType>
using TIntrusiveDoubleLinkedList< InElementType, ContainerType >::TConstIterator = TIntrusiveDoubleLinkedListIterator<const NodeType>

◆ TIterator

template<class InElementType , class ContainerType = InElementType>
using TIntrusiveDoubleLinkedList< InElementType, ContainerType >::TIterator = TIntrusiveDoubleLinkedListIterator<NodeType>

Constructor & Destructor Documentation

◆ TIntrusiveDoubleLinkedList() [1/2]

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

◆ TIntrusiveDoubleLinkedList() [2/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT TIntrusiveDoubleLinkedList< InElementType, ContainerType >::TIntrusiveDoubleLinkedList ( const TIntrusiveDoubleLinkedList< InElementType, ContainerType > &  )
delete

Member Function Documentation

◆ AddHead() [1/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::AddHead ( ElementType Element)
inline

◆ AddHead() [2/2]

template<class InElementType , class ContainerType = InElementType>
void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::AddHead ( TIntrusiveDoubleLinkedList< InElementType, ContainerType > &&  Other)
inline

◆ AddTail() [1/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::AddTail ( ElementType Element)
inline

◆ AddTail() [2/2]

template<class InElementType , class ContainerType = InElementType>
void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::AddTail ( TIntrusiveDoubleLinkedList< InElementType, ContainerType > &&  Other)
inline

◆ begin() [1/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT TIterator TIntrusiveDoubleLinkedList< InElementType, ContainerType >::begin ( )
inline

◆ begin() [2/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT TConstIterator TIntrusiveDoubleLinkedList< InElementType, ContainerType >::begin ( ) const
inline

◆ end() [1/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT TIterator TIntrusiveDoubleLinkedList< InElementType, ContainerType >::end ( )
inline

◆ end() [2/2]

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT TConstIterator TIntrusiveDoubleLinkedList< InElementType, ContainerType >::end ( ) const
inline

◆ GetHead()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT ElementType * TIntrusiveDoubleLinkedList< InElementType, ContainerType >::GetHead ( )
inline

◆ GetTail()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT ElementType * TIntrusiveDoubleLinkedList< InElementType, ContainerType >::GetTail ( )
inline

◆ InsertAfter()

template<class InElementType , class ContainerType = InElementType>
static UE_FORCEINLINE_HINT void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::InsertAfter ( ElementType InsertThis,
ElementType AfterThis 
)
inlinestatic

◆ InsertBefore()

template<class InElementType , class ContainerType = InElementType>
static UE_FORCEINLINE_HINT void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::InsertBefore ( ElementType InsertThis,
ElementType BeforeThis 
)
inlinestatic

◆ IsEmpty()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT bool TIntrusiveDoubleLinkedList< InElementType, ContainerType >::IsEmpty ( ) const
inline

◆ IsFilled()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT bool TIntrusiveDoubleLinkedList< InElementType, ContainerType >::IsFilled ( ) const
inline

◆ operator=()

template<class InElementType , class ContainerType = InElementType>
UE_FORCEINLINE_HINT TIntrusiveDoubleLinkedList & TIntrusiveDoubleLinkedList< InElementType, ContainerType >::operator= ( const TIntrusiveDoubleLinkedList< InElementType, ContainerType > &  )
delete

◆ PopHead()

template<class InElementType , class ContainerType = InElementType>
ElementType * TIntrusiveDoubleLinkedList< InElementType, ContainerType >::PopHead ( )
inline

◆ PopTail()

template<class InElementType , class ContainerType = InElementType>
ElementType * TIntrusiveDoubleLinkedList< InElementType, ContainerType >::PopTail ( )
inline

◆ Remove()

template<class InElementType , class ContainerType = InElementType>
static UE_FORCEINLINE_HINT void TIntrusiveDoubleLinkedList< InElementType, ContainerType >::Remove ( ElementType Element)
inlinestatic

◆ Reset()

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

Fast empty that clears this list without changing the links in any elements.

See also
IsEmpty, IsFilled

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