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

#include <sol.hpp>

Public Types

typedef std::tuple< Functions... > overload_list
 
typedef std::make_index_sequence< sizeof...(Functions)> indices
 

Public Member Functions

 overloaded_function (overload_list set)
 
 overloaded_function (Functions... fxs)
 
template<typename Fx , std::size_t I, typename... R, typename... Args>
int call (types< Fx >, index_value< I >, types< R... >, types< Args... >, lua_State *L, int, int)
 
int operator() (lua_State *L)
 

Public Attributes

overload_list overloads
 

Member Typedef Documentation

§ indices

template<int start_skew = 0, typename... Functions>
typedef std::make_index_sequence<sizeof...(Functions)> sol::function_detail::overloaded_function< start_skew, Functions >::indices

§ overload_list

template<int start_skew = 0, typename... Functions>
typedef std::tuple<Functions...> sol::function_detail::overloaded_function< start_skew, Functions >::overload_list

Constructor & Destructor Documentation

§ overloaded_function() [1/2]

template<int start_skew = 0, typename... Functions>
sol::function_detail::overloaded_function< start_skew, Functions >::overloaded_function ( overload_list  set)
inline
14258  : overloads(std::move(set)) {
14259  }
overload_list overloads
Definition: sol.hpp:14255

§ overloaded_function() [2/2]

template<int start_skew = 0, typename... Functions>
sol::function_detail::overloaded_function< start_skew, Functions >::overloaded_function ( Functions...  fxs)
inline
14262  : overloads(fxs...) {
14263  }
overload_list overloads
Definition: sol.hpp:14255

Member Function Documentation

§ call()

template<int start_skew = 0, typename... Functions>
template<typename Fx , std::size_t I, typename... R, typename... Args>
int sol::function_detail::overloaded_function< start_skew, Functions >::call ( types< Fx >  ,
index_value< I >  ,
types< R... >  ,
types< Args... >  ,
lua_State *  L,
int  ,
int   
)
inline
14266  {
14267  auto& func = std::get<I>(overloads);
14268  return call_detail::call_wrapped<void, true, false, start_skew>(L, func);
14269  }
overload_list overloads
Definition: sol.hpp:14255

§ operator()()

template<int start_skew = 0, typename... Functions>
int sol::function_detail::overloaded_function< start_skew, Functions >::operator() ( lua_State *  L)
inline
14271  {
14272  auto mfx = [&](auto&&... args) { return this->call(std::forward<decltype(args)>(args)...); };
14273  return call_detail::overload_match<Functions...>(mfx, L, 1 + start_skew);
14274  }
int overload_match(Match &&matchfx, lua_State *L, int start, Args &&... args)
Definition: sol.hpp:13200
int call(types< Fx >, index_value< I >, types< R... >, types< Args... >, lua_State *L, int, int)
Definition: sol.hpp:14266

Member Data Documentation

§ overloads

template<int start_skew = 0, typename... Functions>
overload_list sol::function_detail::overloaded_function< start_skew, Functions >::overloads

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