UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ComponentInterfaceIterator.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
7
8template< class T >
10{
11public:
12
14 {
15 EndTag
16 };
17
19 : Index(-1)
20 {
21 TArray<UObject*> ObjectArray;
22
23 for (FComponentInterfaceImplementation& Implementation : T::Implementers)
24 {
25 ObjectArray.Reset();
27 Interfaces.Reserve(ObjectArray.Num() + Interfaces.Num());
28 for (UObject* Object : ObjectArray)
29 {
30 T* Interface = reinterpret_cast<T*>(Implementation.Resolver(Object));
33 }
34 }
35
36 Index = 0;
37 }
38
43
44 inline void operator++(int)
45 {
46 Index++;
47 }
48
49 inline void operator++()
50 {
51 Index++;
52 }
53
55 inline explicit operator bool() const
56 {
58 }
59
61 inline bool operator !() const
62 {
63 return !(bool)*this;
64 }
65
66 inline T* operator*() const
67 {
69 {
70 return Interfaces[Index];
71 }
72 else
73 {
74 return nullptr;
75 }
76 }
77
78 inline T* operator->() const
79 {
81 {
82 return Interfaces[Index];
83 }
84 else
85 {
86 return nullptr;
87 }
88 }
89
90 inline bool operator==(const TComponentInterfaceIterator& Rhs) const { return Index == Rhs.Index; }
91 inline bool operator!=(const TComponentInterfaceIterator& Rhs) const { return Index != Rhs.Index; }
92
93protected:
96
99};
100
101template <typename T>
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Num
Definition MetalRHIPrivate.h:234
const bool
Definition NetworkReplayStreaming.h:178
EInternalObjectFlags
Definition ObjectMacros.h:631
EObjectFlags
Definition ObjectMacros.h:552
@ RF_ClassDefaultObject
This object is used as the default template for all instances of a class. One object is created for e...
Definition ObjectMacros.h:563
void GetObjectsOfClass(const UClass *ClassToLookFor, TArray< UObject * > &Results, bool bIncludeDerivedClasses, EObjectFlags ExclusionFlags, EInternalObjectFlags ExclusionInternalFlags)
Definition UObjectHash.cpp:1812
EInternalObjectFlags GetObjectIteratorDefaultInternalExclusionFlags(EInternalObjectFlags InternalExclusionFlags)
Definition UObjectIterator.h:59
UEBinkAudioDecodeInterface * Interface
Definition binka_ue_decode_test.cpp:24
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition ComponentInterfaceIterator.h:10
TComponentInterfaceIterator(EEndTagType, const TComponentInterfaceIterator< T > &InIter)
Definition ComponentInterfaceIterator.h:39
bool operator!() const
Definition ComponentInterfaceIterator.h:61
int32 Index
Definition ComponentInterfaceIterator.h:98
bool operator!=(const TComponentInterfaceIterator &Rhs) const
Definition ComponentInterfaceIterator.h:91
TComponentInterfaceIterator(EObjectFlags AdditionalExclusionFlags=RF_ClassDefaultObject, bool bIncludeDerivedClasses=true, EInternalObjectFlags InInternalExclusionFlags=EInternalObjectFlags::None)
Definition ComponentInterfaceIterator.h:18
void operator++()
Definition ComponentInterfaceIterator.h:49
T * operator->() const
Definition ComponentInterfaceIterator.h:78
TArray< T * > Interfaces
Definition ComponentInterfaceIterator.h:95
T * operator*() const
Definition ComponentInterfaceIterator.h:66
EEndTagType
Definition ComponentInterfaceIterator.h:14
@ EndTag
Definition ComponentInterfaceIterator.h:15
bool operator==(const TComponentInterfaceIterator &Rhs) const
Definition ComponentInterfaceIterator.h:90
void operator++(int)
Definition ComponentInterfaceIterator.h:44
Definition Object.h:95
U16 Index
Definition radfft.cpp:71
Definition ComponentInterfaces.h:53
Definition ComponentInterfaceIterator.h:103
TComponentInterfaceRange()
Definition ComponentInterfaceIterator.h:104
friend TComponentInterfaceIterator< T > begin(const TComponentInterfaceRange &Range)
Definition ComponentInterfaceIterator.h:108
TComponentInterfaceIterator< T > Begin
Definition ComponentInterfaceIterator.h:111
friend TComponentInterfaceIterator< T > end(const TComponentInterfaceRange &Range)
Definition ComponentInterfaceIterator.h:109