// define 31:
#define f_Q31(x) f_Q(31,x)
#define q31_F(x) q_F(31,x)
#define CHECK_Q31(q,def) CHECK_Q(31,q,def)
// define 25:
#define f_Q25(x) f_Q(25,x)
#define q25_F(x) q_F(25,x)
#define CHECK_Q25(q,def) CHECK_Q(25,q,def)
// etc.
Может быть обобщено выше, например, так:Генерация `# define`s от макро
#define SUPPORT_TYPE(N) something?
Добавление нового типа бы тогда одна строка:
#define SUPPORT_TYPE_Q31 SUPPORT_TYPE(31)
#define SUPPORT_TYPE_Q25 SUPPORT_TYPE(25)
препроцессор делает только 1 так что вам придется искать другой путь. –
Почему все макро магия? недостаточно ли встроенных функций? –
@KamiKaze Это очень длинная история ... :-( – Danijel