create type struct using boost preprocessor for auto enum creation