I run through the Macro I like to use in C and C++ for declaring enums where I would like to get the string names of the values. This case specifically handles the case where we are using a compiler that does not handle enum forward declaration.
Often I will find enums are not serialized in a way that benefits the variable type. Here I discuss a method I tend to use a lot in the games I join to try and correct the issues of serializing enums by value instead of name.