
I think that the names are only "meaningful" if the source language and the application user's language are the same. In general this kind of ability is useful in debugging but in real applications the restraints on identifiers is too limiting (i.e. no punctuation, no accents, no spaces). Far more powerful would be the ability to associate arbitrary data with an enum. This I believe is relatively easy to add to your framework.
Yes, mainly the "meaningful" names can be used for debugging and logging. As I wrote in above reply to Sebastien Martel, arbitary data can be added by means of enumerator-specific methods.
I wish to state for the record, I believe macros should only be used as a last resort.
Absolutely agree. If you find "meaningful" names not very useful feature, enumerator definition can be done without macros. Sincerely yours, Maksym Motornyy.