使用可变参数调用Lua函数的C++代码

好的,所以这可能不是最好的设计决策,我也不想使用类似 LuaBind 的东西......我只是好奇在 C++03 中是否可以实现以下功能(C++11 可以使用可变参数模板)。另外,我相信这个问题以前已经被问过,但我找不到明确的答案!

假设我有一个辅助方法来从代码中调用 Lua 函数:

void CallFunction(char *functionName, ...);

它可能会接受 N 个参数(使用 va_arg 或任何其他多个参数的方法)。

如果可能的话,我要如何确定每个参数的类型,并将它传递给适当的 lua_push{type}() 函数,在调用所需的 lua 函数之前?

我不确定这能否通过 var_arg 来实现,因为在获取参数时必须知道类型,我尝试使用 void* 获取它并将其传递给专用模板,但它试图将其传递给模板。

希望在 C++ 方面更擅长的人会有一些技巧或建议! 非常感谢

原文链接 https://stackoverflow.com/questions/7885299

点赞