重复宏 n 次

Repeating macro n times

我想问问有没有什么办法,自动"repeat"宏n次-自动我的意思是编译时,我想做这样的事情:

#define foo _asm mov eax, eax
#define bar(x) //I don't know how can I do it
int main()
{
    bar(5); //would generate 5 times _asm mov eax, eax
    return 0;
}

我知道我可以将宏嵌入到其他宏中,但我不知道我怎样才能做到恰好 n 次。我想在随机大小的垃圾生成器中使用它

您可以使用递归模板执行此操作:

// recoursive step
template
  <
    size_t   count
  >
void n_asm() {
  _asm mov eax, eax
  n_asm<count - 1>();
}

// base of recursion
template<>
void n_asm<0>() {

}

int main()
{
   n_asm<5>(); 

   return 0;
}