#define LOG_TYPE_LIST \
LOG_TYPE( INFO ) \
LOG_TYPE( WARNING ) \
LOG_TYPE( ERROR ) \
typedef enum
{
#define LOG_TYPE(x) x,
LOG_TYPE_LIST
#undef LOG_TYPE
} LogType;
This is in C++. I know that the first section is a multiline macro, but the second section seems like a mystery to me.