我正在处理morphing C++ into Javascript,我想编写一个执行以下操作的宏function
:
function (x, y, z, ...)
to
[=] (var a, var b, var x, var y, var z, ...) -> Object
基本上就是:
function() -> "[=] (var a, var b) -> Object"
function(x) -> "[=] (var a, var b, var x) -> Object"
function(x, y) -> "[=] (var a, var b, var x, var y) -> Object"
...
它不一定是可变参数,如果它可以适用于适合我的固定数量的元素。此外,如果需要编译器扩展,我很擅长。
有关信息,我当前的宏是以下
#define function(...) [=] (var a, var b, ##__VA_ARGS__) -> Object
我试图寻找宏观技巧,但我找不到符合我需要的东西。
谢谢!
答案 0 :(得分:1)
您可以查看P99。它使用C99的可变宏来展开所有类型的代码。
答案 1 :(得分:0)
使用Boost preprocessor库可以做些什么是可怕的。它甚至可以处理@!