#define ENUM_TO_STRING_ITEM(name, value) case name: return #name ; #define ENUM_TO_STRING(enumName, enumXList)\ const char * enumName##ToString(enumName item) {\ switch (item) {\ enumXList(ENUM_TO_STRING_ITEM)\ default: return "Undefined"; \ }\ }