diff options
author | Robin Gareus <robin@gareus.org> | 2017-02-23 22:19:19 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-02-23 22:32:32 +0100 |
commit | 37dc93b40aba3ab73dc303ccbab5f2b020e64ba0 (patch) | |
tree | 415a73032f9c2ab87f5be508d7cb5e2ea3d12269 /libs | |
parent | e8cebac6a36a45a59cd70f3a0c68a2311366f784 (diff) |
luaBridge support const references to class-instance pointers
Support passing "T*" as as "const T* &" argument
e.g. std::list<T*>::push_back ( const T* & )
Diffstat (limited to 'libs')
-rw-r--r-- | libs/lua/LuaBridge/detail/Userdata.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/lua/LuaBridge/detail/Userdata.h b/libs/lua/LuaBridge/detail/Userdata.h index feab28f132..eaa669811e 100644 --- a/libs/lua/LuaBridge/detail/Userdata.h +++ b/libs/lua/LuaBridge/detail/Userdata.h @@ -783,6 +783,22 @@ struct Stack <T const* const> } }; +// const references to class-instance pointers +// e.g. std::list<T*>::push_back ( const T* & ) +template <class T> +struct Stack <T* const&> +{ + static inline void push (lua_State* L, T* const& p) + { + UserdataPtr::push (L, p); + } + + static inline T* get (lua_State* L, int index) + { + return Userdata::get <T> (L, index, true); + } +}; + // reference template <class T> struct Stack <T&> |