OpenMiner  0.0.1a
Voxel game engine
Public Types | Static Public Member Functions | List of all members
sol::call_detail::agnostic_lua_call_wrapper< F, is_index, is_variable, checked, boost, clean_stack, typename > Struct Template Reference

#include <sol.hpp>

Public Types

typedef wrapper< meta::unqualified_t< F > > wrap
 

Static Public Member Functions

template<typename Fx , typename... Args>
static int convertible_call (std::true_type, lua_State *L, Fx &&f, Args &&... args)
 
template<typename Fx , typename... Args>
static int convertible_call (std::false_type, lua_State *L, Fx &&f, Args &&... args)
 
template<typename Fx , typename... Args>
static int call (lua_State *L, Fx &&f, Args &&... args)
 

Member Typedef Documentation

§ wrap

template<typename F, bool is_index, bool is_variable, bool checked, int boost, bool clean_stack, typename = void>
typedef wrapper<meta::unqualified_t<F> > sol::call_detail::agnostic_lua_call_wrapper< F, is_index, is_variable, checked, boost, clean_stack, typename >::wrap

Member Function Documentation

§ call()

template<typename F, bool is_index, bool is_variable, bool checked, int boost, bool clean_stack, typename = void>
template<typename Fx , typename... Args>
static int sol::call_detail::agnostic_lua_call_wrapper< F, is_index, is_variable, checked, boost, clean_stack, typename >::call ( lua_State *  L,
Fx &&  f,
Args &&...  args 
)
inlinestatic
13257  {
13258  typedef typename wrap::traits_type traits_type;
13259  typedef typename traits_type::function_pointer_type fp_t;
13260  return convertible_call(std::conditional_t<std::is_class<meta::unqualified_t<F>>::value, std::is_convertible<std::decay_t<Fx>, fp_t>, std::false_type>(), L, std::forward<Fx>(f), std::forward<Args>(args)...);
13261  }
lua_bind_traits< meta::unqualified_t< F > > traits_type
Definition: sol.hpp:12610
static int convertible_call(std::true_type, lua_State *L, Fx &&f, Args &&... args)
Definition: sol.hpp:13241

§ convertible_call() [1/2]

template<typename F, bool is_index, bool is_variable, bool checked, int boost, bool clean_stack, typename = void>
template<typename Fx , typename... Args>
static int sol::call_detail::agnostic_lua_call_wrapper< F, is_index, is_variable, checked, boost, clean_stack, typename >::convertible_call ( std::true_type  ,
lua_State *  L,
Fx &&  f,
Args &&...  args 
)
inlinestatic
13241  {
13242  typedef typename wrap::traits_type traits_type;
13243  typedef typename traits_type::function_pointer_type fp_t;
13244  fp_t fx = f;
13245  return agnostic_lua_call_wrapper<fp_t, is_index, is_variable, checked, boost, clean_stack>{}.call(L, fx, std::forward<Args>(args)...);
13246  }
lua_bind_traits< meta::unqualified_t< F > > traits_type
Definition: sol.hpp:12610

§ convertible_call() [2/2]

template<typename F, bool is_index, bool is_variable, bool checked, int boost, bool clean_stack, typename = void>
template<typename Fx , typename... Args>
static int sol::call_detail::agnostic_lua_call_wrapper< F, is_index, is_variable, checked, boost, clean_stack, typename >::convertible_call ( std::false_type  ,
lua_State *  L,
Fx &&  f,
Args &&...  args 
)
inlinestatic
13249  {
13250  typedef typename wrap::returns_list returns_list;
13251  typedef typename wrap::free_args_list args_list;
13252  typedef typename wrap::caller caller;
13253  return stack::call_into_lua<checked, clean_stack>(returns_list(), args_list(), L, boost + 1, caller(), std::forward<Fx>(f), std::forward<Args>(args)...);
13254  }
traits_type::returns_list returns_list
Definition: sol.hpp:12613
traits_type::args_list free_args_list
Definition: sol.hpp:12612

The documentation for this struct was generated from the following file: