19 template<
class T,
typename Ret>
25 template<
class T,
typename Ret,
typename Arg1>
28 auto arg1 = LuaPull<Arg1>(l, index+1);
29 return (ptr->*fn)(arg1);
32 template<
class T,
typename Ret,
typename Arg1,
typename Arg2>
35 auto arg1 = LuaPull<Arg1>(l, index+1);
36 auto arg2 = LuaPull<Arg2>(l, index+2);
37 return (ptr->*fn)(arg1, arg2);
40 template<
class T,
typename Ret,
typename Arg1,
typename Arg2,
typename Arg3>
43 auto arg1 = LuaPull<Arg1>(l, index+1);
44 auto arg2 = LuaPull<Arg2>(l, index+2);
45 auto arg3 = LuaPull<Arg3>(l, index+3);
46 return (ptr->*fn)(arg1, arg2, arg3);
49 template<
class T,
typename Ret,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
52 auto arg1 = LuaPull<Arg1>(l, index+1);
53 auto arg2 = LuaPull<Arg2>(l, index+2);
54 auto arg3 = LuaPull<Arg3>(l, index+3);
55 auto arg4 = LuaPull<Arg4>(l, index+4);
56 return (ptr->*fn)(arg1, arg2, arg3, arg4);
59 template<
class T,
typename Ret,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5>
62 auto arg1 = LuaPull<Arg1>(l, index+1);
63 auto arg2 = LuaPull<Arg2>(l, index+2);
64 auto arg3 = LuaPull<Arg3>(l, index+3);
65 auto arg4 = LuaPull<Arg4>(l, index+4);
66 auto arg5 = LuaPull<Arg5>(l, index+5);
67 return (ptr->*fn)(arg1, arg2, arg3, arg4, arg5);
70 template<
class T,
typename Ret,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5,
typename Arg6>
71 Ret
pi_lua_multiple_call(lua_State *l,
int index, T *ptr, Ret (T::*fn)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6))
73 auto arg1 = LuaPull<Arg1>(l, index+1);
74 auto arg2 = LuaPull<Arg2>(l, index+2);
75 auto arg3 = LuaPull<Arg3>(l, index+3);
76 auto arg4 = LuaPull<Arg4>(l, index+4);
77 auto arg5 = LuaPull<Arg5>(l, index+5);
78 auto arg6 = LuaPull<Arg6>(l, index+6);
79 return (ptr->*fn)(arg1, arg2, arg3, arg4, arg5, arg6);
82 template<
class T,
typename Ret,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5,
typename Arg6,
typename Arg7>
83 Ret
pi_lua_multiple_call(lua_State *l,
int index, T *ptr, Ret (T::*fn)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7))
85 auto arg1 = LuaPull<Arg1>(l, index+1);
86 auto arg2 = LuaPull<Arg2>(l, index+2);
87 auto arg3 = LuaPull<Arg3>(l, index+3);
88 auto arg4 = LuaPull<Arg4>(l, index+4);
89 auto arg5 = LuaPull<Arg5>(l, index+5);
90 auto arg6 = LuaPull<Arg6>(l, index+6);
91 auto arg7 = LuaPull<Arg7>(l, index+7);
92 return (ptr->*fn)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
98 template<
class T,
typename Ret,
typename ...Args>
101 T *ptr = LuaPull<T>(l, index);
Ret pi_lua_generic_call(lua_State *l, int index, Ret(T::*fn)(Args...))
Definition: LuaCall.h:99
Ret pi_lua_multiple_call(lua_State *l, int index, T *ptr, Ret(T::*fn)())
Definition: LuaCall.h:20