为可变宏的元素添加前缀

Add prefix to elements of a variadic macro

本文关键字:元素 添加 加前缀      更新时间:2023-10-16

我正在努力将c++变成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

我试着寻找宏技巧,但我找不到符合我需要的东西。

谢谢!

你可以看看P99。它使用自C99以来的可变宏来展开所有类型的代码。

使用Boost预处理器库可以做的事情非常可怕。它甚至可以处理@!