Pull to refresh

Comments 11

UFO just landed and posted this here

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

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

UFO just landed and posted this here
#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)
};

UFO just landed and posted this here

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

Проблема в том, что хак на хаке — конструкция очень хрупкая. Уже в SunPRO нет даже __FUNCTION__.

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

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

Sign up to leave a comment.

Articles