【发布时间】:2014-12-15 23:32:57
【问题描述】:
我现在在 SO 上阅读了很多关于可变参数宏的问题,但似乎没有人回答最简单的问题:
#define IDENTITY(x) x
#define IDENTITY_FOR_ALL(...) ???
有没有办法让所有参数的IDENTITY_FOR_ALL 扩展为IDENTITY(X)?是否也可以使用任意数量的参数?
【问题讨论】:
-
你能提供一个输入样本以及它应该被预处理成什么吗?
-
您确定不能使用可变参数模板代替宏吗?
-
@chris
IDENTITY是输出。我只希望它被预处理到另一个宏,没有别的。 -
@Deduplicator 是的。在我的用例中,带有一个参数的宏将用于定义枚举的值。我必须做预处理器文本替换工作。
-
是否要将
IDENTITY_FOR_ALL(x,y,z,w)扩展为x,y,z,w?
标签: c++ c++11 c-preprocessor variadic-macros