I also already made the following changes in response to review feedback: Thanks a lot for taking the suggestions to heart * Increased internal limit of PP_FOR_EACH, which applied to the number of enumerators, bases, and members, from 24 to 52; Just did a quick check on a codebase where I'd use this: The largest enum has about 65 enumerators -.- I checked Boost.Preprocessor and there the default limit for BOOST_PP_FOR seems to be 256 (BTW: Why wasn't Boost.PP used?). Maybe 128 would be a good value for Describe? * Added internal (undocumented) macros BOOST_DESCRIBE_ENUM_BEGIN, BOOST_DESCRIBE_ENUM_ENTRY, BOOST_DESCRIBE_ENUM_END; Any chance for naming them a bit differently and/or adding inline-documentation to the non-internal macros? I see people like me checking the header instead of reading the docs and wondering about those. Besides that I like the change, looks much clearer now