【发布时间】:2013-04-13 22:48:29
【问题描述】:
我正在尝试做类似的事情:
custommacro x;
这将扩展为:
declareSomething; int x; declareOtherthing;
这可能吗?
我已经用operator= 欺骗过它一次,但它不能用声明来完成。
【问题讨论】:
-
你要声明什么?可能还有其他方法。
custommacro(x);也是显而易见的方式。 -
重点是不要在
x周围加上括号。 -
不可能,在我看来,这样做非常棘手和微妙。您应该使用 () 和所有大写字母来明确实际发生的情况。试图隐藏事物或制造“魔法”几乎总是使事情复杂化。就做
CUSTOMMACRO(x); -
“我已经用 operator= 欺骗过它一次”——我很好奇这是怎么回事。
-
我希望这是一场模糊的 C++ 编码竞赛,而不是严肃的编程工作:)
标签: c++ macros c-preprocessor metaprogramming