是否可以将一个宏参数扩展为几个?

时间:2014-05-04 00:59:50

标签: c++ c macros

我想将一系列宏参数定义为宏,但我不知道这是否可以实现。

所以,例如,

#define PARAMS "Hillow", " whirled"
#define TEST(p1, p2) p1 p2

void test() 
{   
   char* c = TEST(PARAMS);
}

我想要的是PARAMS在调用TEST之前扩展。但相反,PARAMS被视为单个参数,我得到的是

char* c = "Hillow", " whirled";

动机是定义一个宏,它是一个类型列表,以及对这些类型执行操作的其他宏。我知道boost :: mpl :: vector,但是如果可能的话,我个人更喜欢这种方式,因为它不那么冗长,凡人可以理解,并且它不会破坏任何编译器。

0 个答案:

没有答案