Dyl*_*lan 3 c currying partial-application c-preprocessor
作为问题的一个例子,有没有办法partialconcat在下面的代码中实现宏?
#define apply(f, x) f(x)
apply(partialconcat(he),llo) //should produce hello
Run Code Online (Sandbox Code Playgroud)
编辑:
这是另一个例子,给定一个FOR_EACH可变参数宏(参见另一个问题的答案中的示例实现).
假设我想在几个对象上调用一个成员,可能在另一个宏中用于更大的目的.我想要一个宏callAmber,其行为如下:
FOR_EACH(callMember(someMemberFunction), a, b, c);
Run Code Online (Sandbox Code Playgroud)
产生
a.someMemberFunction(); b.someMemberFunction(); c.someMemberFunction();
Run Code Online (Sandbox Code Playgroud)
这需要callMember(someMember)产生一个行为像的宏
#define callMember_someMember(o) o.someMember()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |