UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectPtrLinkedListIterator.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "UObject/ObjectPtr.h"
6
8template<typename InElementType, TObjectPtr<InElementType> InElementType::*InNextMember, bool bConst, bool bNoAccessTracking>
10{
11 using ElementType = std::conditional_t<bConst, const InElementType, InElementType>;
12
22
24 {
25 return MoveNext();
26 }
27
29 {
30 return MoveNext();
31 }
32
33 explicit operator bool()
34 {
35 return !!Current;
36 }
37
39 {
40 return Current;
41 }
42
44 {
45 return Current;
46 }
47
49 {
50 return Current == Other.Current;
51 }
52
53#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
55 {
56 return Current != Other.Current;
57 }
58#endif
59
61 {
62 return *this;
63 }
68private:
70 {
71 if constexpr (bNoAccessTracking)
72 {
74 }
75 else
76 {
77 Current = Current->*InNextMember.Get();
78 }
79 return *this;
80 }
81
82 ElementType* Current = nullptr;
83};
84
85template<typename InElementType, TObjectPtr<InElementType> InElementType::*InNextMember, bool bNoAccessTracking>
87
88template<typename InElementType, TObjectPtr<InElementType> InElementType::*InNextMember, bool bNoAccessTracking>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
static FORCEINLINE T * NoAccessTrackingGet(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:867
Definition ObjectPtrLinkedListIterator.h:10
TObjectPtrLinkedListIteratorBase operator++(int)
Definition ObjectPtrLinkedListIterator.h:28
ElementType * operator*() const
Definition ObjectPtrLinkedListIterator.h:38
ElementType * operator->() const
Definition ObjectPtrLinkedListIterator.h:43
bool operator!=(const TObjectPtrLinkedListIterator &Other) const
Definition ObjectPtrLinkedListIterator.h:54
bool operator==(const TObjectPtrLinkedListIteratorBase &Other) const
Definition ObjectPtrLinkedListIterator.h:48
TObjectPtrLinkedListIteratorBase end()
Definition ObjectPtrLinkedListIterator.h:64
std::conditional_t< bConst, const InElementType, InElementType > ElementType
Definition ObjectPtrLinkedListIterator.h:11
TObjectPtrLinkedListIteratorBase & operator=(const TObjectPtrLinkedListIteratorBase &)=default
TObjectPtrLinkedListIteratorBase begin()
Definition ObjectPtrLinkedListIterator.h:60
TObjectPtrLinkedListIteratorBase(ElementType *InStart)
Definition ObjectPtrLinkedListIterator.h:14
TObjectPtrLinkedListIteratorBase & operator++()
Definition ObjectPtrLinkedListIterator.h:23
TObjectPtrLinkedListIteratorBase(TObjectPtrLinkedListIteratorBase &&)=default
TObjectPtrLinkedListIteratorBase & operator=(TObjectPtrLinkedListIteratorBase &&)=default
TObjectPtrLinkedListIteratorBase(const TObjectPtrLinkedListIteratorBase &)=default