When a RNA file was compiled in C++, building would fail when defining a
RNA enum property that assigns to a enum value with a defined (i.e.
non-integer) type.
----
For example, #104831 contains the following in a non-DNA header:
```
typedef struct AssetShelfType {
/*...*/
AssetShelfTypeFlag flag;
/*...*/
} AssetShelfType;
```
And a RNA definition like this:
```
prop = RNA_def_property(srna, "bl_options", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "type->flag");
/*...*/
```
There's no custom setter callback defined so it would be generated by
`makesrna`. It would be generated as `data->type->flag = value;` whereby
`value` is of type `int`, which doesn't work in C++. The integer value
needs to be cast to the enum type.