ein*_*ica 3 c c++ macros metaprogramming
我想编写C宏,它接受一个整数文字或类似于整数文字的东西,以及另一个宏的名称,并将该其他宏扩展为整数字面值的多倍,索引作为参数,例如
MAGIC(4, FUN)
Run Code Online (Sandbox Code Playgroud)
扩展到
FUN(0) FUN(1) FUN(2) FUN(3)
Run Code Online (Sandbox Code Playgroud)
相反,如果我的MORE_MAGIC需要一个范围的起点和长度,那就更好了:
例如
MORE_MAGIC(1, 3, FUN)
Run Code Online (Sandbox Code Playgroud)
扩展到
FUN(1) FUN(2) FUN(3)
Run Code Online (Sandbox Code Playgroud)
注意:
Boost预处理器是一个广泛的库,专注于这种预处理器魔术.
它提供了一个名为BOOST_PP_REPEAT_FROM_TO的宏,它可以完全满足您的需求.
完整参考可在此处获得:http:
//boost.org/libs/preprocessor