#include <iostream>
using namespace std;
template <typename ...Types>
void call_func(void * state, const char * name, Types ... args )
{
}
struct LuaWrapper{
template <typename ...Types>
static void call( void * state, const char * name, Types ... args )
{
call_func(state, name, args...);
}
};
int main() {
LuaWrapper w;
w.call(nullptr, "");
w.call(nullptr,"",1,2,3);
w.call(nullptr,"",1.0f);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIC4uLlR5cGVzPgp2b2lkIGNhbGxfZnVuYyh2b2lkICogc3RhdGUsIGNvbnN0IGNoYXIgKiBuYW1lLCBUeXBlcyAuLi4gYXJncyApCnsKCQp9CgpzdHJ1Y3QgTHVhV3JhcHBlcnsKdGVtcGxhdGUgPHR5cGVuYW1lIC4uLlR5cGVzPgpzdGF0aWMgdm9pZCBjYWxsKCB2b2lkICogc3RhdGUsIGNvbnN0IGNoYXIgKiBuYW1lLCBUeXBlcyAuLi4gYXJncyApCnsKCWNhbGxfZnVuYyhzdGF0ZSwgbmFtZSwgYXJncy4uLik7Cn0KfTsKCmludCBtYWluKCkgewoJTHVhV3JhcHBlciB3OwoJdy5jYWxsKG51bGxwdHIsICIiKTsKCXcuY2FsbChudWxscHRyLCIiLDEsMiwzKTsKCXcuY2FsbChudWxscHRyLCIiLDEuMGYpOwoJcmV0dXJuIDA7Cn0=