Re: [luabind] No Matched Arguments
Brought to you by:
arvidn,
daniel_wallin
From: Bjorn M. <Bjo...@mi...> - 2007-04-27 08:14:50
|
It looks to me like you're trying to map a static function. When you use th= e : operator in Lua, you are asking it to "secretly" pass "self", equivalen= t to C++ "this" along as the first parameter. When you use the "." operator= , this secret "self" does not happen. This is why, when using the ":" opera= tor, LuaBind complains that no match could be found for (<OgreApp>, string,= string, string). Have you tried mapping the static function as a global function to see if t= his works? Alternatively, try mapping a version that uses const char* inste= ad of string. Sorry, it's no 100% solution, but perhaps enough to get you started. Regards Bjorn From: lua...@li... [mailto:luabind-user-bounc= es...@li...] On Behalf Of Casey Borders Sent: 27 April 2007 06:17 To: lua...@li... Subject: [luabind] No Matched Arguments I have just started playing with LuaBind and so far it seems like it's goin= g to be a great thing! I am running into a bit of a problem though. I hav= e a class called OgreApp that has a method called addPath that looks like t= his: void OgreApp::addPath(std::string group, std::string type, std::string = path) here is how I've tried setting it up in luabind: luabind::module(luaState) [ luabind::class_<OgreApp>("OgreApp") .def("addPath", (void(OgreApp::*)(std::string, std::string, std::st= ring))&OgreApp::addPath) ]; and I call it in lua like this: OgreApp.addPath(group, type, path) but I got the following error no overload of 'OgreApp:addPath' matched the arguments(string, string,= string) candidates are: OgreApp:addPath(string, string, string) I noticed the fact that it says OgreApp:addPath, so I tried calling it like= that instead and got this error no overload of 'OgreApp:addPath' matched the arguments(<OgreApp>, stri= ng, string, string) candidates are: OgreApp:addPath(string, string, string) What am I doing wrong? |