【发布时间】:2018-05-19 15:52:37
【问题描述】:
想知道是否可以为 C++ 宏分配两个用逗号分隔的值,然后使用该宏定义传递给宏的两个参数?
例如,对于宏
#define ADD_TWO(first, second) first + second
这行得通:
int foo = ADD_TWO(0, 42);
但这不是
#define ZERO_COMMA_FORTY_TWO 0,42
int bar = ADD_TWO(ZERO_COMMA_FORTY_TWO);
有没有办法将一个宏定义为另一个宏的两个或多个参数?
编辑:环境是 VS2017
【问题讨论】:
-
避免宏编程。
-
@Ron 你将从我冰冷的死手手中接过宏元编程!
-
@Quentin Lol,我会支持你的评论。
-
宏很有趣:
ADD_TWO(3.14159, true)和ADD_TWO("Macro", 3.14159)。改用函数(或内联函数)。 -
@ThomasMatthews 我非常怀疑他的实际用例是否添加了两个值——可能只是一个有趣的 MCVE
标签: c++