Hacker News new | ask | show | jobs
by uecker 35 days ago
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.