Iterating over enums with TFieldIterator

UEnum represets enum type not enum property like UIntProperty, enum type can’t be assined as a part of the class. TFieldIterator will only work with UProperty fields, the non-property reflection system objects like UClass, UStruct or UEnum require longer and heavier TObjectIterator, if you gonna do it do it once and collect those objects you need.

So where is enum property then? There seem to not be one :stuck_out_tongue: reflection system see them as UByteProperty (Byte is also other name for uint8) and UByteProperty and UNumericProperty (base of all number property types) itself got Enum function which includes IsEnum which let you detect if it enum property

https://docs.unrealengine.com/latest/INT/API/Runtime/CoreUObject/UObject/UNumericProperty/IsEnum/index.html

And you can get UEnum of property from

https://docs.unrealengine.com/latest/INT/API/Runtime/CoreUObject/UObject/UNumericProperty/GetIntPropertyEnum/index.html