back

by uecker·3mo ago·view on hn ↗
In practice it is written like like this:

  #define MY_ENUM(x) x(MY_A) x(MY_B) x(MY_C)
  enum my_enum { MY_ENUM(ENUM_ENTRIES) };

  static const char *my_enum_names[] = { MY_ENUM(ENUM_NAMES) };
but one could also make it even more compact if one cared.
1 comments
That doesn't look any better.

Yes, xmacros have the best compile times, but you can't possibly argue that they are elegant to use compared to the alternatives.

It looks better to me than the other macro solution as it is more transparent what is done compared to DEFINE_ENUM. But I agree it is not as succinct as C++'s reflection syntax.
> It looks better to me than the other macro solution as it is more transparent what is done compared to DEFINE_ENUM.

Fair enough.