A proposal to use template to help converting enums to strings. My idea would be not to introduce macros for this, and allow custom mapping tables (not generate the strings from enum. And the goal would be to remove the hand made switch-cases we do for every enum.
I was also thinking about adding stream manipulator to change the output from more natural "EnumName" to current state - "EnumName (value)" only in log/debug output.
Please let me know what do you think about it.