#if внутри #define?

Я сижу на некотором унаследованном коде, который генерирует много кода через #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);
7
задан Brian Tompsett - 汤莱恩 24 June 2016 в 08:01
поделиться