Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;宏,将n扩展为1,2,3。。。N_C++_Macros - Fatal编程技术网

C++ C++;宏,将n扩展为1,2,3。。。N

C++ C++;宏,将n扩展为1,2,3。。。N,c++,macros,C++,Macros,我正在尝试为矩阵/向量构建一个模板类 我想将一个宏扩展为如下内容 #define ELEMENTS(M, N) expands into m00, m01, m02, ... , m0N, m10, m11, m12, ... , m1N, ... ... ... mm0, mN1, mN2, ... , mMN 这可能吗?你想要的是 BOOST\u PP\u ENUM\u PARAMS本身只是BOOST\u PP\u REPEAT的包装器。查看一下显示,它相当麻烦,而且还依赖于一些棘手的标

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

我想将一个宏扩展为如下内容

#define ELEMENTS(M, N) expands into

m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN
这可能吗?

你想要的是


BOOST\u PP\u ENUM\u PARAMS
本身只是
BOOST\u PP\u REPEAT
的包装器。查看一下显示,它相当麻烦,而且还依赖于一些棘手的标题,如
auto\u rec.hpp
。实现这样的东西可能比手工完成你想做的事情更麻烦。因此,如果您不想使用Boost,我宁愿不使用。

使用数组更简单、更高效。@AraK如果我理解正确,他希望将其扩展为模板参数列表。或者我错了吗?“ARAK它也更难使用=”我想要联合{结构} t元素(m,n};v[n*m];}可能对你没有关系,但是从一个联盟的非活动成员中读取是C++中的未定义行为。不等同于在该联合体中读取m00。另一方面,C99将其定义为预期的实现定义的类型双关。呃,除了使用boost之外,还有其他解决方案吗+1@aCuria我试着解释,为什么我认为这不是一个好主意,但如果你接近这一点,我会给你一些文件看。只提取B的一部分预处理器也应该是可行的。