我试图建立矩阵/矢量模板类C++宏,扩大n为进1,2,3,...,N
我想扩展宏成类似以下
#define ELEMENTS(M, N) expands into
m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN
这可能吗?
我试图建立矩阵/矢量模板类C++宏,扩大n为进1,2,3,...,N
我想扩展宏成类似以下
#define ELEMENTS(M, N) expands into
m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN
这可能吗?
你想要的是BOOST_PP_ENUM_PARAMS。
BOOST_PP_ENUM_PARAMS
本身只是一个围绕BOOST_PP_REPEAT
的包装。查看implementation显示它很麻烦,也取决于一些棘手的标题,如auto_rec.hpp
。实施这样的事情可能会更麻烦,然后按照您的想法进行手动操作。所以,如果你不想使用Boost,我宁愿不这样做。
使用数组更简单,效率更高。 – AraK 2012-02-22 14:42:23
@AraK如果我正确理解他,他想把它扩展到一个模板参数列表。或者我错了? – pmr 2012-02-22 14:43:10
@AraK它也很难使用=)我想结合{结构{T ELEMENTS(M,N); v [N * M];} – aCuria 2012-02-22 14:55:17