#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.
