OpenMiner  0.0.1a
Voxel game engine
Public Member Functions | Private Member Functions | List of all members
sol::basic_object_base< base_t > Class Template Reference

#include <sol.hpp>

Inheritance diagram for sol::basic_object_base< base_t >:
base_t

Public Member Functions

 basic_object_base () noexcept=default
 
 basic_object_base (const basic_object_base &)=default
 
 basic_object_base (basic_object_base &&)=default
 
basic_object_baseoperator= (const basic_object_base &)=default
 
basic_object_baseoperator= (basic_object_base &&)=default
 
template<typename T , typename... Args, meta::enable< meta::neg< std::is_same< meta::unqualified_t< T >, basic_object_base >>> = meta::enabler>
 basic_object_base (T &&arg, Args &&... args)
 
template<typename T >
decltype(auto) as () const
 
template<typename T >
bool is () const
 

Private Member Functions

template<typename T >
decltype(auto) as_stack (std::true_type) const
 
template<typename T >
decltype(auto) as_stack (std::false_type) const
 
template<typename T >
bool is_stack (std::true_type) const
 
template<typename T >
bool is_stack (std::false_type) const
 

Constructor & Destructor Documentation

§ basic_object_base() [1/4]

template<typename base_t>
sol::basic_object_base< base_t >::basic_object_base ( )
defaultnoexcept

§ basic_object_base() [2/4]

template<typename base_t>
sol::basic_object_base< base_t >::basic_object_base ( const basic_object_base< base_t > &  )
default

§ basic_object_base() [3/4]

template<typename base_t>
sol::basic_object_base< base_t >::basic_object_base ( basic_object_base< base_t > &&  )
default

§ basic_object_base() [4/4]

template<typename base_t>
template<typename T , typename... Args, meta::enable< meta::neg< std::is_same< meta::unqualified_t< T >, basic_object_base >>> = meta::enabler>
sol::basic_object_base< base_t >::basic_object_base ( T &&  arg,
Args &&...  args 
)
inline
15804  : base_t(std::forward<T>(arg), std::forward<Args>(args)...) {
15805  }

Member Function Documentation

§ as()

template<typename base_t>
template<typename T >
decltype(auto) sol::basic_object_base< base_t >::as ( ) const
inline
15808  {
15809  return as_stack<T>(is_stack_based<base_t>());
15810  }

§ as_stack() [1/2]

template<typename base_t>
template<typename T >
decltype(auto) sol::basic_object_base< base_t >::as_stack ( std::true_type  ) const
inlineprivate
15770  {
15771  return stack::get<T>(base_t::lua_state(), base_t::stack_index());
15772  }

§ as_stack() [2/2]

template<typename base_t>
template<typename T >
decltype(auto) sol::basic_object_base< base_t >::as_stack ( std::false_type  ) const
inlineprivate
15775  {
15776  base_t::push();
15777  return stack::pop<T>(base_t::lua_state());
15778  }
int push(lua_State *L, Arg &&arg, Args &&... args)
Definition: sol.hpp:7776

§ is()

template<typename base_t>
template<typename T >
bool sol::basic_object_base< base_t >::is ( ) const
inline
15813  {
15814  return is_stack<T>(is_stack_based<base_t>());
15815  }

§ is_stack() [1/2]

template<typename base_t>
template<typename T >
bool sol::basic_object_base< base_t >::is_stack ( std::true_type  ) const
inlineprivate
15781  {
15782  return stack::check<T>(base_t::lua_state(), base_t::stack_index(), no_panic);
15783  }
int no_panic(lua_State *, int, type, type, const char *=nullptr) noexcept
Definition: sol.hpp:6402

§ is_stack() [2/2]

template<typename base_t>
template<typename T >
bool sol::basic_object_base< base_t >::is_stack ( std::false_type  ) const
inlineprivate
15786  {
15787  int r = base_t::registry_index();
15788  if (r == LUA_REFNIL)
15789  return meta::any_same<meta::unqualified_t<T>, lua_nil_t, nullopt_t, std::nullptr_t>::value ? true : false;
15790  if (r == LUA_NOREF)
15791  return false;
15792  auto pp = stack::push_pop(*this);
15793  return stack::check<T>(base_t::lua_state(), -1, no_panic);
15794  }
int no_panic(lua_State *, int, type, type, const char *=nullptr) noexcept
Definition: sol.hpp:6402
push_popper< top_level, T > push_pop(T &&x)
Definition: sol.hpp:6661

§ operator=() [1/2]

template<typename base_t>
basic_object_base& sol::basic_object_base< base_t >::operator= ( const basic_object_base< base_t > &  )
default

§ operator=() [2/2]

template<typename base_t>
basic_object_base& sol::basic_object_base< base_t >::operator= ( basic_object_base< base_t > &&  )
default

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