重复宏 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;
}
我想问问有没有什么办法,自动"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;
}