OpenMiner  0.0.1a
Voxel game engine
Public Types | Public Member Functions | Static Public Member Functions | List of all members
sol::function_detail::upvalue_this_member_variable< T, Function, is_yielding > Struct Template Reference

#include <sol.hpp>

Public Types

typedef std::remove_pointer_t< std::decay_t< Function > > function_type
 

Public Member Functions

int operator() (lua_State *L)
 

Static Public Member Functions

static int real_call (lua_State *L) noexcept(false)
 
static int call (lua_State *L)
 

Member Typedef Documentation

§ function_type

template<typename T , typename Function , bool is_yielding>
typedef std::remove_pointer_t<std::decay_t<Function> > sol::function_detail::upvalue_this_member_variable< T, Function, is_yielding >::function_type

Member Function Documentation

§ call()

template<typename T , typename Function , bool is_yielding>
static int sol::function_detail::upvalue_this_member_variable< T, Function, is_yielding >::call ( lua_State *  L)
inlinestatic
14083  {
14084  int nr = detail::typed_static_trampoline<decltype(&real_call), (&real_call)>(L);
14085  if (is_yielding) {
14086  return lua_yield(L, nr);
14087  }
14088  else {
14089  return nr;
14090  }
14091  }

§ operator()()

template<typename T , typename Function , bool is_yielding>
int sol::function_detail::upvalue_this_member_variable< T, Function, is_yielding >::operator() ( lua_State *  L)
inline
14093  {
14094  return call(L);
14095  }
static int call(lua_State *L)
Definition: sol.hpp:14083

§ real_call()

template<typename T , typename Function , bool is_yielding>
static int sol::function_detail::upvalue_this_member_variable< T, Function, is_yielding >::real_call ( lua_State *  L)
inlinestaticnoexcept
14068  {
14069  // Layout:
14070  // idx 1...n: verbatim data of member variable pointer
14071  auto memberdata = stack::stack_detail::get_as_upvalues<function_type>(L);
14072  function_type& var = memberdata.first;
14073  switch (lua_gettop(L)) {
14074  case 1:
14075  return call_detail::call_wrapped<T, true, false>(L, var);
14076  case 2:
14077  return call_detail::call_wrapped<T, false, false>(L, var);
14078  default:
14079  return luaL_error(L, "sol: incorrect number of arguments to member variable function");
14080  }
14081  }
auto var(V &&v)
Definition: sol.hpp:13018
std::remove_pointer_t< std::decay_t< Function > > function_type
Definition: sol.hpp:14066

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