17template <
class FieldType>
52 int32 CurrentFieldIndex = -1;
57 , FieldIterator(nullptr)
69 return (
bool)FieldIterator || (
bool)StructIterator;
79 return *FieldIterator == *Rhs.FieldIterator && CurrentFieldIndex == Rhs.CurrentFieldIndex;
83 return *FieldIterator != *Rhs.FieldIterator || CurrentFieldIndex != Rhs.CurrentFieldIndex;
93 if (CurrentFieldIndex >= 0)
101 if (CurrentFieldIndex >= 0)
112 CurrentFieldIndex = -1;
113 CurrentFields.
Reset();
114 typename T::BaseFieldClass*
CurrentField = *FieldIterator;
122 while (FieldIterator)
124 for (++CurrentFieldIndex; CurrentFieldIndex < CurrentFields.
Num(); ++CurrentFieldIndex)
126 if (CurrentFields[CurrentFieldIndex]->
template IsA<T>())
132 if (CurrentFieldIndex == CurrentFields.
Num())
141 CurrentFieldIndex = -1;
154 while (StructIterator)
156 FieldIterator.~TFieldIterator<
typename T::BaseFieldClass>();
162 CurrentFieldIndex = -1;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
void GetInnerFieldsFromField(FieldType *Owner, TArray< FieldType * > &OutFields)
Definition FieldIterator.h:18
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
Definition FieldIterator.h:39
bool operator==(const TAllFieldsIterator< T > &Rhs) const
Definition FieldIterator.h:77
void InitCurrentFields()
Definition FieldIterator.h:110
bool operator!=(const TAllFieldsIterator< T > &Rhs) const
Definition FieldIterator.h:81
void IterateToNextField()
Definition FieldIterator.h:120
T * operator*()
Definition FieldIterator.h:91
UE_FORCEINLINE_HINT bool operator!() const
Definition FieldIterator.h:72
void ConditionallyIterateToNextStruct()
Definition FieldIterator.h:181
void InitFieldIterator()
Definition FieldIterator.h:152
T * operator->()
Definition FieldIterator.h:99
void operator++()
Definition FieldIterator.h:86
TAllFieldsIterator(EObjectFlags AdditionalExclusionFlags=RF_ClassDefaultObject, EInternalObjectFlags InternalExclusionFlags=EInternalObjectFlags::None)
Definition FieldIterator.h:55
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_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition UnrealType.h:7083
Definition UObjectIterator.h:257
@ ExcludeSuper
Definition UnrealType.h:7041
@ IncludeInterfaces
Definition UnrealType.h:7054
@ IncludeDeprecated
Definition UnrealType.h:7048