我想创建一个递归宏,它将创建“下一个”类。
例:
#define PRINTME(indexNum) class m_##(indexNum+1) { }
indexNum + 1
被评估为int
,并且不会连接到类名。在连接之前,如何使编译器对此进行评估?
最佳答案
简单的答案是您不能。预处理器通常处理文本和 token 。唯一的位算术是在#if
和#elif
指令中执行的。
而且,宏扩展不是递归的。在扩展过程中,正在扩展的宏被禁用,并且不可用于进一步的替换。
关于c++ - 宏增加值,然后串联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11717508/