I resorted to using the following workaround until UHT is adjusted to generate correct specializations for TNameOf:
// Once in a common header
#define Workaround_Expose_TNameOf(type) \
template<> \
struct TNameOf<type> \
{ \
FORCEINLINE static TCHAR const* GetName() \
{ \
return TEXT(#type); \
} \
}
// After every UEnum (replace EMyUEnumType by the enum's typename)
Workaround_Expose_TNameOf(EMyUEnumType);