diff --git a/libs/lua/LuaBridge/detail/Namespace.h b/libs/lua/LuaBridge/detail/Namespace.h index f4f2ae2135..3644b9e157 100644 --- a/libs/lua/LuaBridge/detail/Namespace.h +++ b/libs/lua/LuaBridge/detail/Namespace.h @@ -1864,7 +1864,34 @@ public: } template - Class > beginStdVector (char const* name) + Class > beginConstStdCPtrList (char const* name) + { + typedef T* TP; + typedef std::list LT; + return beginClass (name) + .addVoidConstructor () + .addFunction ("empty", <::empty) + .addFunction ("size", <::size) + .addFunction ("reverse", <::reverse) + .addFunction ("front", static_cast(<::front)) + .addFunction ("back", static_cast(<::back)) + .addExtCFunction ("iter", &CFunc::listIter) + .addExtCFunction ("table", &CFunc::listToTable); + } + + template + Class > beginStdCPtrList (char const* name) + { + typedef T* TP; + typedef std::list LT; + return beginConstStdCPtrList (name) + .addFunction ("unique", (void (LT::*)())<::unique) + .addFunction ("push_back", (void (LT::*)(const TP&))<::push_back); + } + + + template + Class > beginConstStdVector (char const* name) { typedef std::vector LT; typedef typename std::vector::reference T_REF; @@ -1874,13 +1901,23 @@ public: .addVoidConstructor () .addFunction ("empty", <::empty) .addFunction ("size", <::size) - .addFunction ("push_back", (void (LT::*)(const T&))<::push_back) .addFunction ("at", (T_REF (LT::*)(T_SIZE))<::at) - .addExtCFunction ("add", &CFunc::tableToList) .addExtCFunction ("iter", &CFunc::listIter) .addExtCFunction ("table", &CFunc::listToTable); } + template + Class > beginStdVector (char const* name) + { + typedef std::vector LT; + return beginConstStdVector (name) + .addVoidConstructor () + .addFunction ("push_back", (void (LT::*)(const T&))<::push_back) + .addExtCFunction ("add", &CFunc::tableToList); + } + + + //---------------------------------------------------------------------------- template