Как стать автором
Обновить

Комментарии 11

НЛО прилетело и опубликовало эту надпись здесь

Это совсем другое, мягко выражаясь.

Кроме того, в вашем варианте совершенно не нужны #undef X, достаточно имя X передавать в LIST_OF_STATUSES(some_X)...

НЛО прилетело и опубликовало эту надпись здесь
#define LIST_OF_STATUSES(X) \
  X(STATUS_IDLE) \
  X(STATUS_CONNECTING) \
  X(STATUS_CONNECTED) \
  X(STATUS_DISCONNECTING) \
  X(STATUS_ERROR)


/* Create the enumeration */
#define X1(name) name,
typedef enum {
  LIST_OF_STATUSES(X1)
} status_t;

/* Create the strings mapped to the enumeration */
#define X2(name) #name,
static char *status_strings[] = {
  LIST_OF_STATUSES(X2)
};

НЛО прилетело и опубликовало эту надпись здесь

Совсем не новый, Александреску предлагал подобную реализацию ещё в 2012 году, но самого кода не было. Мне интересно было это все руками сделать, а не тащить с гитхаба

Не уверен, что этот функционал настолько требуется на SunPRO, раз они выпилили даже __FUNCITON__

Кажется, вы изобрели magic_enum

Есть такое, но она работает от 17 плюсов, в конце написал про нее. Интересно же понять самому как оно работает

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории