diff --git a/libs/lua/LuaBridge/detail/Namespace.h b/libs/lua/LuaBridge/detail/Namespace.h index f78c41ee64..521fb14f85 100644 --- a/libs/lua/LuaBridge/detail/Namespace.h +++ b/libs/lua/LuaBridge/detail/Namespace.h @@ -1839,8 +1839,8 @@ public: return beginClass (name) .addVoidConstructor () - .addFunction ("empty", <::empty) - .addFunction ("size", <::size) + .addFunction ("empty", (bool (LT::*)()const)<::empty) + .addFunction ("size", (T_SIZE (LT::*)()const)<::size) .addFunction ("clear", (void (LT::*)())<::clear) .addFunction ("count", (T_SIZE (LT::*)(const K&) const)<::count) .addExtCFunction ("add", &CFunc::tableToMap) @@ -1870,11 +1870,11 @@ public: .addVoidConstructor () .addFunction ("reset", (BS& (BS::*)())&BS::reset) .addFunction ("set", (BS& (BS::*)(size_t, bool))&BS::set) - .addFunction ("count", &BS::count) - .addFunction ("any", &BS::any) - .addFunction ("none", &BS::none) + .addFunction ("count", (size_t (BS::*)()const)&BS::count) + .addFunction ("size", (size_t (BS::*)()const)&BS::size) + .addFunction ("any", (bool (BS::*)()const)&BS::any) + .addFunction ("none", (bool (BS::*)()const)&BS::none) .addFunction ("test", &BS::test) - .addFunction ("size", &BS::size) .addExtCFunction ("add", &CFunc::tableToBitSet) .addExtCFunction ("table", &CFunc::bitSetToTable); } @@ -1883,11 +1883,12 @@ public: Class > beginConstStdList (char const* name) { typedef std::list LT; + typedef typename LT::size_type T_SIZE; return beginClass (name) .addVoidConstructor () - .addFunction ("empty", <::empty) - .addFunction ("size", <::size) - .addFunction ("reverse", <::reverse) + .addFunction ("empty", static_cast(<::empty)) + .addFunction ("size", static_cast(<::size)) + .addFunction ("reverse", static_cast(<::reverse)) .addFunction ("front", static_cast(<::front)) .addFunction ("back", static_cast(<::back)) .addExtCFunction ("iter", &CFunc::listIter) @@ -1898,10 +1899,15 @@ public: Class > beginStdList (char const* name) { typedef std::list LT; + typedef typename LT::size_type T_SIZE; return beginConstStdList (name) #if !defined(_MSC_VER) || (_MSC_VER < 1900) /* std::list::unique() got broken in later versions of MSVC */ +# if (defined(__cplusplus) && __cplusplus >= 201709L) + .addFunction ("unique", (T_SIZE (LT::*)())<::unique) +# else .addFunction ("unique", (void (LT::*)())<::unique) +# endif #endif .addFunction ("push_back", (void (LT::*)(const T&))<::push_back) .addExtCFunction ("add", &CFunc::tableToList); @@ -1912,11 +1918,12 @@ public: { typedef T* TP; typedef std::list LT; + typedef typename LT::size_type T_SIZE; return beginClass (name) .addVoidConstructor () - .addFunction ("empty", <::empty) - .addFunction ("size", <::size) - .addFunction ("reverse", <::reverse) + .addFunction ("empty", static_cast(<::empty)) + .addFunction ("size", static_cast(<::size)) + .addFunction ("reverse", static_cast(<::reverse)) .addFunction ("front", static_cast(<::front)) .addFunction ("back", static_cast(<::back)) .addExtCFunction ("iter", &CFunc::listIter) @@ -1928,10 +1935,15 @@ public: { typedef T* TP; typedef std::list LT; + typedef typename LT::size_type T_SIZE; return beginConstStdCPtrList (name) #if !defined(_MSC_VER) || (_MSC_VER < 1900) /* std::list::unique() got broken in later versions of MSVC */ +# if (defined(__cplusplus) && __cplusplus >= 201709L) + .addFunction ("unique", (T_SIZE (LT::*)())<::unique) +# else .addFunction ("unique", (void (LT::*)())<::unique) +# endif #endif .addExtCFunction ("push_back", &CFunc::pushbackptr); } @@ -1946,8 +1958,8 @@ public: return beginClass (name) .addVoidConstructor () - .addFunction ("empty", <::empty) - .addFunction ("size", <::size) + .addFunction ("empty", (bool (LT::*)()const)<::empty) + .addFunction ("size", (T_SIZE (LT::*)()const)<::size) .addFunction ("at", (T_REF (LT::*)(T_SIZE))<::at) .addExtCFunction ("iter", &CFunc::listIter) .addExtCFunction ("table", &CFunc::listToTable); @@ -1971,14 +1983,19 @@ public: Class > > beginPtrStdList (char const* name) { typedef std::list LT; + typedef typename LT::size_type T_SIZE; return beginClass > (name) //.addVoidPtrConstructor () - .addPtrFunction ("empty", <::empty) - .addPtrFunction ("size", <::size) - .addPtrFunction ("reverse", <::reverse) + .addPtrFunction ("empty", (bool (LT::*)()const)<::empty) + .addPtrFunction ("size", (T_SIZE (LT::*)()const)<::size) + .addPtrFunction ("reverse", (void (LT::*)())<::reverse) #if !defined(_MSC_VER) || (_MSC_VER < 1900) /* std::list::unique() got broken in later versions of MSVC */ +# if (defined(__cplusplus) && __cplusplus >= 201709L) + .addPtrFunction ("unique", (T_SIZE (LT::*)())<::unique) +# else .addPtrFunction ("unique", (void (LT::*)())<::unique) +# endif #endif .addPtrFunction ("push_back", (void (LT::*)(const T&))<::push_back) .addExtCFunction ("add", &CFunc::ptrTableToList) @@ -1995,9 +2012,8 @@ public: return beginClass > (name) //.addVoidPtrConstructor () - .addPtrFunction ("empty", <::empty) - .addPtrFunction ("empty", <::empty) - .addPtrFunction ("size", <::size) + .addPtrFunction ("empty", (bool (LT::*)()const)<::empty) + .addPtrFunction ("size", (T_SIZE (LT::*)()const)<::size) .addPtrFunction ("push_back", (void (LT::*)(const T&))<::push_back) .addPtrFunction ("at", (T_REF (LT::*)(T_SIZE))<::at) .addExtCFunction ("add", &CFunc::ptrTableToList)