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

#include <sol.hpp>

Public Types

typedef std::remove_pointer_t< std::decay_t< Function > > function_type
 
typedef meta::function_return_t< function_typereturn_type
 
typedef meta::function_args_t< function_typeargs_lists
 

Public Member Functions

template<typename... Args>
 member_function (function_type f, Args &&... args)
 
int call (lua_State *L)
 
int operator() (lua_State *L)
 

Public Attributes

function_type invocation
 
T member
 

Member Typedef Documentation

§ args_lists

template<typename T , typename Function , bool is_yielding>
typedef meta::function_args_t<function_type> sol::function_detail::member_function< T, Function, is_yielding >::args_lists

§ function_type

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

§ return_type

template<typename T , typename Function , bool is_yielding>
typedef meta::function_return_t<function_type> sol::function_detail::member_function< T, Function, is_yielding >::return_type

Constructor & Destructor Documentation

§ member_function()

template<typename T , typename Function , bool is_yielding>
template<typename... Args>
sol::function_detail::member_function< T, Function, is_yielding >::member_function ( function_type  f,
Args &&...  args 
)
inline
14180  : invocation(std::move(f)), member(std::forward<Args>(args)...) {
14181  }
T member
Definition: sol.hpp:14176
function_type invocation
Definition: sol.hpp:14175

Member Function Documentation

§ call()

template<typename T , typename Function , bool is_yielding>
int sol::function_detail::member_function< T, Function, is_yielding >::call ( lua_State *  L)
inline
14183  {
14184  int nr = call_detail::call_wrapped<T, true, false, -1>(L, invocation, detail::unwrap(detail::deref(member)));
14185  if (is_yielding) {
14186  return lua_yield(L, nr);
14187  }
14188  else {
14189  return nr;
14190  }
14191  }
auto deref(T &&item) -> decltype(std::forward< T >(item))
Definition: sol.hpp:1842
T member
Definition: sol.hpp:14176
function_type invocation
Definition: sol.hpp:14175
auto unwrap(T &&item) -> decltype(std::forward< T >(item))
Definition: sol.hpp:1832
int call_wrapped(lua_State *L, Fx &&fx, Args &&... args)
Definition: sol.hpp:13729

§ operator()()

template<typename T , typename Function , bool is_yielding>
int sol::function_detail::member_function< T, Function, is_yielding >::operator() ( lua_State *  L)
inline
14193  {
14194  auto f = [&](lua_State*) -> int { return this->call(L); };
14195  return detail::trampoline(L, f);
14196  }
int trampoline(lua_State *L, Fx &&f, Args &&... args)
Definition: sol.hpp:5946
int call(lua_State *L)
Definition: sol.hpp:14183

Member Data Documentation

§ invocation

template<typename T , typename Function , bool is_yielding>
function_type sol::function_detail::member_function< T, Function, is_yielding >::invocation

§ member

template<typename T , typename Function , bool is_yielding>
T sol::function_detail::member_function< T, Function, is_yielding >::member

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