【发布时间】:2016-02-01 22:13:36
【问题描述】:
我正在使用 c++ 宏,试图在某些模式上实现。我有以下 3 个宏:
#define First Objct t; t
#define Second a() / b()
#define Third ;
我已经重载了 lambda-ops 格式:Objct [ Objct ]
所以当我在 main() 中有这样一行:
First [ Second ] Third
它工作正常,因为它被“翻译”成:
Objct t; t[a()/b()]
(注意:a() 和 b() 是返回类型对象的虚拟函数。)
困难的部分是,我还必须让它在没有 lambda 的情况下工作。
First Second Third
意思是
Objct t; t a() / b()
在这种情况下,我从FIRST 到SECOND 缺少一个分号。我试图弄清楚,可以(可能)对FIRST 宏进行哪些更改,以便在这两种情况下都可以编译。
我不确定我是否能够正确地解释自己。有什么想法吗?
【问题讨论】:
-
您误解了“lambda”一词。这就是下标或索引。
-
你忘了说这个的目的。这没有意义。由于不清楚而投票结束。
-
你的例子都没有显示来自
THIRD扩展的分号。 -
真的很抱歉,我只是想简化我的代码。
标签: c++ c++11 macros operators