8template<
typename InElementType>
15 return &(Element.Next);
19template<
typename InElementType, InElementType* InElementType::* NextLink>
26 return &(Element.*NextLink);
33template<
typename InElementType,
typename InPo
interType,
typename InLinkAccessor>
49 if (*EndPtr != NewValue)
71 UE_DEPRECATED(5.6,
"Append is deprecated. Please use AppendTerminated instead.")
80 WriteEndPtr(&Element);
81 EndPtr = LinkAccessor::GetNextPtr(Element);
119 template <
class PREDICATE_CLASS>
159 WriteEndPtr(
nullptr);
166 EndPtr = LinkAccessor::GetNextPtr(*It);
174 EndPtr = LinkAccessor::GetNextPtr(**EndPtr);
183 return GetNextRef(Element);
199 return *LinkAccessor::GetNextPtr(Element);
210template<
typename InElementType,
typename InLinkAccessor = TLinkedListBuilderNextLink<InElementType>>
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition LinkedListBuilder.h:35
TLinkedListBuilderBase(PointerType *ListStartPtr)
Definition LinkedListBuilder.h:57
void AppendNoTerminate(ElementType &Element)
Definition LinkedListBuilder.h:78
InLinkAccessor LinkAccessor
Definition LinkedListBuilder.h:39
UE_FORCEINLINE_HINT PointerType GetListStart() const
Definition LinkedListBuilder.h:186
UE_FORCEINLINE_HINT void NullTerminate()
Definition LinkedListBuilder.h:157
int32 RemoveAll(const PREDICATE_CLASS &Predicate)
Definition LinkedListBuilder.h:120
InPointerType PointerType
Definition LinkedListBuilder.h:38
void MoveToEnd()
Definition LinkedListBuilder.h:162
void AppendTerminated(ElementType &Element)
Definition LinkedListBuilder.h:85
UE_NONCOPYABLE(TLinkedListBuilderBase)
UE_FORCEINLINE_HINT void Restart()
Definition LinkedListBuilder.h:66
UE_FORCEINLINE_HINT PointerType GetListEnd() const
Definition LinkedListBuilder.h:191
InElementType ElementType
Definition LinkedListBuilder.h:37
UE_FORCEINLINE_HINT PointerType GetNext(ElementType &Element) const
Definition LinkedListBuilder.h:181
void Remove(ElementType &Element)
Definition LinkedListBuilder.h:142
bool MoveToNext()
Definition LinkedListBuilder.h:170
Definition LinkedListBuilder.h:21
static UE_FORCEINLINE_HINT ElementType ** GetNextPtr(ElementType &Element)
Definition LinkedListBuilder.h:24
InElementType ElementType
Definition LinkedListBuilder.h:22
Definition LinkedListBuilder.h:10
InElementType ElementType
Definition LinkedListBuilder.h:11
static UE_FORCEINLINE_HINT ElementType ** GetNextPtr(ElementType &Element)
Definition LinkedListBuilder.h:13
Definition LinkedListBuilder.h:212
UE_NONCOPYABLE(TLinkedListBuilder)