Я сижу на каком-то устаревшем коде, который генерирует много кода через #defines. Теперь я знаю, что невозможно иметь #ifdef
внутри #define
, но возможно ли #if
? Я хотел бы добавить специализацию для определенного типа. (без внесения серьезных изменений, таких как использование шаблонов). Следующий пример дает мне загадочные ошибки, так что это не так:
#define MK_GET(type) \
type get_ ## type (int index) \
{ \
#if type == double \ <-- what i want to add
specialized code... \
#endif
...
} \
MK_GET(double);
MK_GET(int);
MK_GET(string);