OpenMiner  0.0.1a
Voxel game engine
Public Member Functions | Public Attributes | Private Member Functions | List of all members
sol::simple_usertype_metatable< T > Struct Template Reference

#include <sol.hpp>

Inheritance diagram for sol::simple_usertype_metatable< T >:
sol::usertype_detail::registrar

Public Member Functions

template<typename N >
void insert (N &&n, object &&o)
 
template<typename N , typename F , typename... Args>
void insert_prepare (std::true_type, lua_State *L, N &&, F &&f, Args &&... args)
 
template<typename N , typename F , typename... Args>
void insert_prepare (std::false_type, lua_State *L, N &&n, F &&f, Args &&... args)
 
template<typename N , typename F >
void add_member_function (std::true_type, lua_State *L, N &&n, F &&f)
 
template<typename N , typename F >
void add_member_function (std::false_type, lua_State *L, N &&n, F &&f)
 
template<typename N , typename F , meta::enable< meta::is_callable< meta::unwrap_unqualified_t< F >>> = meta::enabler>
void add_function (lua_State *L, N &&n, F &&f)
 
template<typename N , typename F , meta::disable< meta::is_callable< meta::unwrap_unqualified_t< F >>> = meta::enabler>
void add_function (lua_State *L, N &&n, F &&f)
 
template<typename N , typename F , meta::disable< is_variable_binding< meta::unqualified_t< F >>> = meta::enabler>
void add (lua_State *L, N &&n, F &&f)
 
template<typename N , typename F , meta::enable< is_variable_binding< meta::unqualified_t< F >>> = meta::enabler>
void add (lua_State *, N &&n, F &&f)
 
template<typename N , typename... Fxs>
void add (lua_State *L, N &&n, constructor_wrapper< Fxs... > c)
 
template<typename N , typename... Lists>
void add (lua_State *L, N &&n, constructor_list< Lists... > c)
 
template<typename N >
void add (lua_State *L, N &&n, destructor_wrapper< void > c)
 
template<typename N , typename Fx >
void add (lua_State *L, N &&n, destructor_wrapper< Fx > c)
 
template<typename... Bases>
void add (lua_State *, base_classes_tag, bases< Bases... >)
 
 simple_usertype_metatable (lua_State *L)
 
template<typename Arg , typename... Args, meta::disable_any< meta::any_same< meta::unqualified_t< Arg >, detail::verified_tag, detail::add_destructor_tag, detail::check_destructor_tag >, meta::is_specialization_of< meta::unqualified_t< Arg >, constructors >, meta::is_specialization_of< meta::unqualified_t< Arg >, constructor_wrapper >> = meta::enabler>
 simple_usertype_metatable (lua_State *L, Arg &&arg, Args &&... args)
 
template<typename... Args, typename... CArgs>
 simple_usertype_metatable (lua_State *L, constructors< CArgs... > constructorlist, Args &&... args)
 
template<typename... Args, typename... Fxs>
 simple_usertype_metatable (lua_State *L, constructor_wrapper< Fxs... > constructorlist, Args &&... args)
 
 simple_usertype_metatable (const simple_usertype_metatable &)=default
 
 simple_usertype_metatable (simple_usertype_metatable &&)=default
 
simple_usertype_metatableoperator= (const simple_usertype_metatable &)=default
 
simple_usertype_metatableoperator= (simple_usertype_metatable &&)=default
 
virtual int push_um (lua_State *L) override
 
- Public Member Functions inherited from sol::usertype_detail::registrar
 registrar ()=default
 
 registrar (const registrar &)=default
 
 registrar (registrar &&)=default
 
registraroperator= (const registrar &)=default
 
registraroperator= (registrar &&)=default
 
virtual ~registrar ()
 

Public Attributes

usertype_detail::function_map registrations
 
usertype_detail::variable_map varmap
 
object callconstructfunc
 
object indexfunc
 
object newindexfunc
 
lua_CFunction indexbase
 
lua_CFunction newindexbase
 
usertype_detail::base_walk indexbaseclasspropogation
 
usertype_detail::base_walk newindexbaseclasspropogation
 
void * baseclasscheck
 
void * baseclasscast
 
bool mustindex
 
bool secondarymeta
 
std::array< bool, 32 > properties
 

Private Member Functions

template<std::size_t... I, typename Tuple >
 simple_usertype_metatable (detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
 
template<typename... Args>
 simple_usertype_metatable (lua_State *L, detail::verified_tag v, Args &&... args)
 
template<typename... Args>
 simple_usertype_metatable (lua_State *L, detail::add_destructor_tag, Args &&... args)
 
template<typename... Args>
 simple_usertype_metatable (lua_State *L, detail::check_destructor_tag, Args &&... args)
 

Constructor & Destructor Documentation

§ simple_usertype_metatable() [1/10]

template<typename T >
template<std::size_t... I, typename Tuple >
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( detail::verified_tag  ,
std::index_sequence< I... >  ,
lua_State *  L,
Tuple &&  args 
)
inlineprivate
19494  : callconstructfunc(lua_nil), indexfunc(lua_nil), newindexfunc(lua_nil), indexbase(&usertype_detail::simple_core_indexing_call<T, true>), newindexbase(&usertype_detail::simple_core_indexing_call<T, false>), indexbaseclasspropogation(usertype_detail::walk_all_bases<true>), newindexbaseclasspropogation(&usertype_detail::walk_all_bases<false>), baseclasscheck(nullptr), baseclasscast(nullptr), mustindex(false), secondarymeta(false), properties() {
19495  properties.fill(false);
19496 
19497  (void)detail::swallow{0,
19498  (add(L, detail::forward_get<I * 2>(args), detail::forward_get<I * 2 + 1>(args)), 0)...};
19499  }
std::initializer_list< int > swallow
Definition: sol.hpp:462
bool mustindex
Definition: sol.hpp:19353
bool secondarymeta
Definition: sol.hpp:19354
usertype_detail::base_walk indexbaseclasspropogation
Definition: sol.hpp:19349
void * baseclasscheck
Definition: sol.hpp:19351
object callconstructfunc
Definition: sol.hpp:19344
lua_CFunction newindexbase
Definition: sol.hpp:19348
lua_CFunction indexbase
Definition: sol.hpp:19347
void * baseclasscast
Definition: sol.hpp:19352
object indexfunc
Definition: sol.hpp:19345
void add(lua_State *L, N &&n, F &&f)
Definition: sol.hpp:19415
usertype_detail::base_walk newindexbaseclasspropogation
Definition: sol.hpp:19350
object newindexfunc
Definition: sol.hpp:19346
std::array< bool, 32 > properties
Definition: sol.hpp:19355

§ simple_usertype_metatable() [2/10]

template<typename T >
template<typename... Args>
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L,
detail::verified_tag  v,
Args &&...  args 
)
inlineprivate
19503  : simple_usertype_metatable(v, std::make_index_sequence<sizeof...(Args) / 2>(), L, std::forward_as_tuple(std::forward<Args>(args)...)) {
19504  }
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [3/10]

template<typename T >
template<typename... Args>
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L,
detail::add_destructor_tag  ,
Args &&...  args 
)
inlineprivate
19508  : simple_usertype_metatable(L, detail::verified, std::forward<Args>(args)..., "__gc", default_destructor) {
19509  }
const destructor_wrapper< void > default_destructor
Definition: sol.hpp:4544
struct sol::detail::verified_tag verified
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [4/10]

template<typename T >
template<typename... Args>
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L,
detail::check_destructor_tag  ,
Args &&...  args 
)
inlineprivate
19513  : simple_usertype_metatable(L, meta::condition<meta::all<std::is_destructible<T>, meta::neg<detail::has_destructor<Args...>>>, detail::add_destructor_tag, detail::verified_tag>(), std::forward<Args>(args)...) {
19514  }
boolean<!T::value > neg
Definition: sol.hpp:1293
std::conditional_t< Condition::value, Then, Else > condition
Definition: sol.hpp:1296
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [5/10]

template<typename T >
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L)
inline
19518  : simple_usertype_metatable(L, meta::condition<meta::all<std::is_default_constructible<T>>, decltype(default_constructor), detail::check_destructor_tag>()) {
19519  }
std::conditional_t< Condition::value, Then, Else > condition
Definition: sol.hpp:1296
const auto default_constructor
Definition: sol.hpp:4497
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [6/10]

template<typename T >
template<typename Arg , typename... Args, meta::disable_any< meta::any_same< meta::unqualified_t< Arg >, detail::verified_tag, detail::add_destructor_tag, detail::check_destructor_tag >, meta::is_specialization_of< meta::unqualified_t< Arg >, constructors >, meta::is_specialization_of< meta::unqualified_t< Arg >, constructor_wrapper >> = meta::enabler>
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L,
Arg &&  arg,
Args &&...  args 
)
inline
19523  : simple_usertype_metatable(L, meta::condition<meta::all<std::is_default_constructible<T>, meta::neg<detail::has_constructor<Args...>>>, decltype(default_constructor), detail::check_destructor_tag>(), std::forward<Arg>(arg), std::forward<Args>(args)...) {
19524  }
boolean<!T::value > neg
Definition: sol.hpp:1293
std::conditional_t< Condition::value, Then, Else > condition
Definition: sol.hpp:1296
const auto default_constructor
Definition: sol.hpp:4497
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [7/10]

template<typename T >
template<typename... Args, typename... CArgs>
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L,
constructors< CArgs... >  constructorlist,
Args &&...  args 
)
inline
19528  : simple_usertype_metatable(L, detail::check_destructor_tag(), std::forward<Args>(args)..., "new", constructorlist) {
19529  }
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [8/10]

template<typename T >
template<typename... Args, typename... Fxs>
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( lua_State *  L,
constructor_wrapper< Fxs... >  constructorlist,
Args &&...  args 
)
inline
19533  : simple_usertype_metatable(L, detail::check_destructor_tag(), std::forward<Args>(args)..., "new", constructorlist) {
19534  }
simple_usertype_metatable(detail::verified_tag, std::index_sequence< I... >, lua_State *L, Tuple &&args)
Definition: sol.hpp:19493

§ simple_usertype_metatable() [9/10]

template<typename T >
sol::simple_usertype_metatable< T >::simple_usertype_metatable ( const simple_usertype_metatable< T > &  )
default

§ simple_usertype_metatable() [10/10]

Member Function Documentation

§ add() [1/7]

template<typename T >
template<typename N , typename F , meta::disable< is_variable_binding< meta::unqualified_t< F >>> = meta::enabler>
void sol::simple_usertype_metatable< T >::add ( lua_State *  L,
N &&  n,
F &&  f 
)
inline
19415  {
19416  add_function(L, std::forward<N>(n), std::forward<F>(f));
19417  }
void add_function(lua_State *L, N &&n, F &&f)
Definition: sol.hpp:19400

§ add() [2/7]

template<typename T >
template<typename N , typename F , meta::enable< is_variable_binding< meta::unqualified_t< F >>> = meta::enabler>
void sol::simple_usertype_metatable< T >::add ( lua_State *  ,
N &&  n,
F &&  f 
)
inline
19420  {
19421  mustindex = true;
19422  secondarymeta = true;
19423  std::string key = usertype_detail::make_string(std::forward<N>(n));
19424  auto o = std::make_unique<usertype_detail::callable_binding<T, std::decay_t<F>>>(std::forward<F>(f));
19425  auto hint = varmap.find(key);
19426  if (hint == varmap.cend()) {
19427  varmap.emplace_hint(hint, std::move(key), std::move(o));
19428  return;
19429  }
19430  hint->second = std::move(o);
19431  }
usertype_detail::variable_map varmap
Definition: sol.hpp:19343
std::string make_string(Arg &&arg)
Definition: sol.hpp:18514
bool mustindex
Definition: sol.hpp:19353
bool secondarymeta
Definition: sol.hpp:19354

§ add() [3/7]

template<typename T >
template<typename N , typename... Fxs>
void sol::simple_usertype_metatable< T >::add ( lua_State *  L,
N &&  n,
constructor_wrapper< Fxs... >  c 
)
inline
19434  {
19435  object o(L, in_place_type<detail::tagged<T, constructor_wrapper<Fxs...>>>, std::move(c));
19436  if (std::is_same<meta::unqualified_t<N>, call_construction>::value) {
19437  callconstructfunc = std::move(o);
19438  return;
19439  }
19440  insert(std::forward<N>(n), std::move(o));
19441  }
constexpr in_place_tag in_place_type(detail::in_place_of_t< T >)
Definition: sol.hpp:3239
void insert(N &&n, object &&o)
Definition: sol.hpp:19358
object callconstructfunc
Definition: sol.hpp:19344

§ add() [4/7]

template<typename T >
template<typename N , typename... Lists>
void sol::simple_usertype_metatable< T >::add ( lua_State *  L,
N &&  n,
constructor_list< Lists... >  c 
)
inline
19444  {
19445  object o(L, in_place_type<detail::tagged<T, constructor_list<Lists...>>>, std::move(c));
19446  if (std::is_same<meta::unqualified_t<N>, call_construction>::value) {
19447  callconstructfunc = std::move(o);
19448  return;
19449  }
19450  insert(std::forward<N>(n), std::move(o));
19451  }
constexpr in_place_tag in_place_type(detail::in_place_of_t< T >)
Definition: sol.hpp:3239
void insert(N &&n, object &&o)
Definition: sol.hpp:19358
object callconstructfunc
Definition: sol.hpp:19344

§ add() [5/7]

template<typename T >
template<typename N >
void sol::simple_usertype_metatable< T >::add ( lua_State *  L,
N &&  n,
destructor_wrapper< void >  c 
)
inline
19454  {
19455  object o(L, in_place_type<detail::tagged<T, destructor_wrapper<void>>>, std::move(c));
19456  if (std::is_same<meta::unqualified_t<N>, call_construction>::value) {
19457  callconstructfunc = std::move(o);
19458  return;
19459  }
19460  insert(std::forward<N>(n), std::move(o));
19461  }
constexpr in_place_tag in_place_type(detail::in_place_of_t< T >)
Definition: sol.hpp:3239
void insert(N &&n, object &&o)
Definition: sol.hpp:19358
object callconstructfunc
Definition: sol.hpp:19344

§ add() [6/7]

template<typename T >
template<typename N , typename Fx >
void sol::simple_usertype_metatable< T >::add ( lua_State *  L,
N &&  n,
destructor_wrapper< Fx >  c 
)
inline
19464  {
19465  object o(L, in_place_type<detail::tagged<T, destructor_wrapper<Fx>>>, std::move(c));
19466  if (std::is_same<meta::unqualified_t<N>, call_construction>::value) {
19467  callconstructfunc = std::move(o);
19468  return;
19469  }
19470  insert(std::forward<N>(n), std::move(o));
19471  }
constexpr in_place_tag in_place_type(detail::in_place_of_t< T >)
Definition: sol.hpp:3239
void insert(N &&n, object &&o)
Definition: sol.hpp:19358
object callconstructfunc
Definition: sol.hpp:19344

§ add() [7/7]

template<typename T >
template<typename... Bases>
void sol::simple_usertype_metatable< T >::add ( lua_State *  ,
base_classes_tag  ,
bases< Bases... >   
)
inline
19474  {
19475  static_assert(sizeof(usertype_detail::base_walk) <= sizeof(void*), "size of function pointer is greater than sizeof(void*); cannot work on this platform. Please file a bug report.");
19476  static_assert(!meta::any_same<T, Bases...>::value, "base classes cannot list the original class as part of the bases");
19477  if (sizeof...(Bases) < 1) {
19478  return;
19479  }
19480  mustindex = true;
19481  (void)detail::swallow{0, ((detail::has_derived<Bases>::value = true), 0)...};
19482 
19483  static_assert(sizeof(void*) <= sizeof(detail::inheritance_check_function), "The size of this data pointer is too small to fit the inheritance checking function: Please file a bug report.");
19484  static_assert(sizeof(void*) <= sizeof(detail::inheritance_cast_function), "The size of this data pointer is too small to fit the inheritance checking function: Please file a bug report.");
19485  baseclasscheck = reinterpret_cast<void*>(&detail::inheritance<T, Bases...>::type_check);
19486  baseclasscast = reinterpret_cast<void*>(&detail::inheritance<T, Bases...>::type_cast);
19489  }
std::initializer_list< int > swallow
Definition: sol.hpp:462
static void walk_all_bases(lua_State *L, bool &found, int &ret, string_view &accessor)
Definition: sol.hpp:18711
bool mustindex
Definition: sol.hpp:19353
static bool value
Definition: sol.hpp:6208
usertype_detail::base_walk indexbaseclasspropogation
Definition: sol.hpp:19349
void * baseclasscheck
Definition: sol.hpp:19351
void(* base_walk)(lua_State *, bool &, int &, string_view &)
Definition: sol.hpp:18389
decltype(&inheritance< void >::type_check) inheritance_check_function
Definition: sol.hpp:6299
void * baseclasscast
Definition: sol.hpp:19352
decltype(&inheritance< void >::type_cast) inheritance_cast_function
Definition: sol.hpp:6300
usertype_detail::base_walk newindexbaseclasspropogation
Definition: sol.hpp:19350

§ add_function() [1/2]

template<typename T >
template<typename N , typename F , meta::enable< meta::is_callable< meta::unwrap_unqualified_t< F >>> = meta::enabler>
void sol::simple_usertype_metatable< T >::add_function ( lua_State *  L,
N &&  n,
F &&  f 
)
inline
19400  {
19401  object o = make_object(L, as_function_reference(std::forward<F>(f)));
19402  if (std::is_same<meta::unqualified_t<N>, call_construction>::value) {
19403  callconstructfunc = std::move(o);
19404  return;
19405  }
19406  insert(std::forward<N>(n), std::move(o));
19407  }
void insert(N &&n, object &&o)
Definition: sol.hpp:19358
object callconstructfunc
Definition: sol.hpp:19344
object make_object(lua_State *L, T &&value)
Definition: sol.hpp:16230
auto as_function_reference(Args &&... args)
Definition: sol.hpp:4977

§ add_function() [2/2]

template<typename T >
template<typename N , typename F , meta::disable< meta::is_callable< meta::unwrap_unqualified_t< F >>> = meta::enabler>
void sol::simple_usertype_metatable< T >::add_function ( lua_State *  L,
N &&  n,
F &&  f 
)
inline
19410  {
19411  add_member_function(std::is_member_pointer<meta::unwrap_unqualified_t<F>>(), L, std::forward<N>(n), std::forward<F>(f));
19412  }
void add_member_function(std::true_type, lua_State *L, N &&n, F &&f)
Definition: sol.hpp:19390

§ add_member_function() [1/2]

template<typename T >
template<typename N , typename F >
void sol::simple_usertype_metatable< T >::add_member_function ( std::true_type  ,
lua_State *  L,
N &&  n,
F &&  f 
)
inline
19390  {
19391  insert_prepare(std::is_same<meta::unqualified_t<N>, call_construction>(), L, std::forward<N>(n), std::forward<F>(f), function_detail::class_indicator<T>());
19392  }
void insert_prepare(std::true_type, lua_State *L, N &&, F &&f, Args &&... args)
Definition: sol.hpp:19378

§ add_member_function() [2/2]

template<typename T >
template<typename N , typename F >
void sol::simple_usertype_metatable< T >::add_member_function ( std::false_type  ,
lua_State *  L,
N &&  n,
F &&  f 
)
inline
19395  {
19396  insert_prepare(std::is_same<meta::unqualified_t<N>, call_construction>(), L, std::forward<N>(n), std::forward<F>(f));
19397  }
void insert_prepare(std::true_type, lua_State *L, N &&, F &&f, Args &&... args)
Definition: sol.hpp:19378

§ insert()

template<typename T >
template<typename N >
void sol::simple_usertype_metatable< T >::insert ( N &&  n,
object &&  o 
)
inline
19358  {
19359  std::string key = usertype_detail::make_string(std::forward<N>(n));
19360  int is_indexer = static_cast<int>(usertype_detail::is_indexer(n));
19361  if (is_indexer == 1) {
19362  indexfunc = o;
19363  mustindex = true;
19364  }
19365  else if (is_indexer == 2) {
19366  newindexfunc = o;
19367  mustindex = true;
19368  }
19369  auto hint = registrations.find(key);
19370  if (hint == registrations.cend()) {
19371  registrations.emplace_hint(hint, std::move(key), std::move(o));
19372  return;
19373  }
19374  hint->second = std::move(o);
19375  }
std::string make_string(Arg &&arg)
Definition: sol.hpp:18514
bool mustindex
Definition: sol.hpp:19353
int is_indexer(base_classes_tag)
Definition: sol.hpp:18493
int is_indexer(string_view s)
Definition: sol.hpp:18469
usertype_detail::function_map registrations
Definition: sol.hpp:19342
object indexfunc
Definition: sol.hpp:19345
object newindexfunc
Definition: sol.hpp:19346

§ insert_prepare() [1/2]

template<typename T >
template<typename N , typename F , typename... Args>
void sol::simple_usertype_metatable< T >::insert_prepare ( std::true_type  ,
lua_State *  L,
N &&  ,
F &&  f,
Args &&...  args 
)
inline
19378  {
19379  object o = make_object<F>(L, std::forward<F>(f), function_detail::call_indicator(), std::forward<Args>(args)...);
19380  callconstructfunc = std::move(o);
19381  }
object callconstructfunc
Definition: sol.hpp:19344

§ insert_prepare() [2/2]

template<typename T >
template<typename N , typename F , typename... Args>
void sol::simple_usertype_metatable< T >::insert_prepare ( std::false_type  ,
lua_State *  L,
N &&  n,
F &&  f,
Args &&...  args 
)
inline
19384  {
19385  object o = make_object<F>(L, std::forward<F>(f), std::forward<Args>(args)...);
19386  insert(std::forward<N>(n), std::move(o));
19387  }
void insert(N &&n, object &&o)
Definition: sol.hpp:19358

§ operator=() [1/2]

template<typename T >
simple_usertype_metatable& sol::simple_usertype_metatable< T >::operator= ( const simple_usertype_metatable< T > &  )
default

§ operator=() [2/2]

template<typename T >
simple_usertype_metatable& sol::simple_usertype_metatable< T >::operator= ( simple_usertype_metatable< T > &&  )
default

§ push_um()

template<typename T >
virtual int sol::simple_usertype_metatable< T >::push_um ( lua_State *  L)
inlineoverridevirtual

Implements sol::usertype_detail::registrar.

19541  {
19542  return stack::push(L, std::move(*this));
19543  }
int push(lua_State *L, T &&t, Args &&... args)
Definition: sol.hpp:7770

Member Data Documentation

§ baseclasscast

template<typename T >
void* sol::simple_usertype_metatable< T >::baseclasscast

§ baseclasscheck

template<typename T >
void* sol::simple_usertype_metatable< T >::baseclasscheck

§ callconstructfunc

template<typename T >
object sol::simple_usertype_metatable< T >::callconstructfunc

§ indexbase

template<typename T >
lua_CFunction sol::simple_usertype_metatable< T >::indexbase

§ indexbaseclasspropogation

template<typename T >
usertype_detail::base_walk sol::simple_usertype_metatable< T >::indexbaseclasspropogation

§ indexfunc

template<typename T >
object sol::simple_usertype_metatable< T >::indexfunc

§ mustindex

template<typename T >
bool sol::simple_usertype_metatable< T >::mustindex

§ newindexbase

template<typename T >
lua_CFunction sol::simple_usertype_metatable< T >::newindexbase

§ newindexbaseclasspropogation

template<typename T >
usertype_detail::base_walk sol::simple_usertype_metatable< T >::newindexbaseclasspropogation

§ newindexfunc

template<typename T >
object sol::simple_usertype_metatable< T >::newindexfunc

§ properties

template<typename T >
std::array<bool, 32> sol::simple_usertype_metatable< T >::properties

§ registrations

template<typename T >
usertype_detail::function_map sol::simple_usertype_metatable< T >::registrations

§ secondarymeta

template<typename T >
bool sol::simple_usertype_metatable< T >::secondarymeta

§ varmap


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