Just wanted to add an alternative instead of a preprocessor define you can use a constexpr as well
//... Declare enum like usual
constexpr uint8 MyEnum_MAX = static_cast<uint8>(EMyEnum::MyEnum_MAX);
USTRUCT(BlueprintType)
struct FMyEnumStruct
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, meta = (ArraySizeEnum = "EMyEnum"))
FVector2D Ranges[MyEnum_MAX];
};
Thank you so much, this helped me out!