我坐在一些通过#defines 生成大量代码的遗留代码上。现在我知道不可能有一个#ifdef
内部 a #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);