Переносимый макрос параметра UNUSED, используемый в сигнатуре функций для C и C ++

Я заинтересован в создании макроса для устранения предупреждения о неиспользуемой переменной.

В этом вопросе описывается способ подавления предупреждения о неиспользуемом параметре путем записи макроса внутри кода функции:

Универсально compi ler независимый способ реализации НЕИСПОЛЬЗОВАННОГО макроса в C / C ++

Но меня интересует макрос, который можно использовать в сигнатуре функции:

void callback (int UNUSED (some_useless_stuff)) {}

This это то, что я откопал с помощью Google ( источник )

#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
#elif defined(__LCLINT__)
# define UNUSED(x) /*@unused@*/ x
#elif defined(__cplusplus)
# define UNUSED(x)
#else
# define UNUSED(x) x
#endif

Можно ли расширить это для других компиляторов?

Изменить: для тех, кто не понимает, как работает тегирование: мне нужно решение для обоих C и C ++. Вот почему этот вопрос помечен как C, так и C ++, и поэтому решение только на C ++ неприемлемо.

34
задан Community 23 May 2017 в 12:34
поделиться