C ++宏,将n扩展为1,2,3,... n

时间:2012-02-22 14:36:50

标签: c++ macros

我正在尝试为矩阵/向量构建模板类

我想将宏扩展为类似以下的内容

#define ELEMENTS(M, N) expands into

m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN

这可能吗?

1 个答案:

答案 0 :(得分:7)

你想要的是BOOST_PP_ENUM_PARAMS

BOOST_PP_ENUM_PARAMS本身只是BOOST_PP_REPEAT的包装。查看implementation表明它相当繁琐,还取决于一些棘手的标题,如auto_rec.hpp。实现类似的东西可能比手工操作更麻烦。所以,如果你不想使用Boost,我宁愿不这样做。