luaBridge support const references to class-instance pointers
authorRobin Gareus <robin@gareus.org>
Thu, 23 Feb 2017 21:19:19 +0000 (22:19 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 23 Feb 2017 21:32:32 +0000 (22:32 +0100)
Support passing "T*" as as "const T* &"  argument
e.g. std::list<T*>::push_back ( const T* & )

libs/lua/LuaBridge/detail/Userdata.h

index feab28f132b85c32c4434c6852680122797bc149..eaa669811e0b1103829b11a6476421a14fcbf6cd 100644 (file)
@@ -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&>