| 290 | |
| 291 | template <bool check_args = detail::default_safe_function_calls, bool clean_stack = true, typename Fx, typename... FxArgs> |
| 292 | inline int call_lua(lua_State* L, int start, Fx&& fx, FxArgs&&... fxargs) { |
| 293 | using traits_type = lua_bind_traits<meta::unqualified_t<Fx>>; |
| 294 | using args_list = typename traits_type::args_list; |
| 295 | using returns_list = typename traits_type::returns_list; |
| 296 | return call_into_lua<check_args, clean_stack>(returns_list(), args_list(), L, start, std::forward<Fx>(fx), std::forward<FxArgs>(fxargs)...); |
| 297 | } |
| 298 | |
| 299 | inline call_syntax get_call_syntax(lua_State* L, const string_view& key, int index) { |
| 300 | if (lua_gettop(L) < 1) { |