Re: return_stl_iterator acting as const?
John Smith <[email protected]>
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <[email protected]> |
That didn't seem to do it. To be clear from my example the class itself does appear to be acting as a ref, however the STL container contained WITHIN it seems to being copied to the lua object and *IT* isn't acting as a reference. On Mon, Mar 2, 2009 at 2:04 PM, Kristoffer Danielsson < [email protected]> wrote: > If I remember correctly... use boost::ref() on the variables in your call > to function_call: > > function_call(boost::ref(myVar)); > > ------------------------------ > Date: Mon, 2 Mar 2009 01:09:27 -0800 > From: [email protected] > To: [email protected] > Subject: [luabind] return_stl_iterator acting as const? > > > Greetings all, > > I'm having a problem setting the value of a class contained within a > std::vector from lua, I have the following code: > > C++: > class ContainedObject > { > public: > int value; > }; > > class ContainerObject > { > public: > std::vector<ContainedObject> vec; > int containervalue; > }; > > > luabind::module(L) > [ > luabind::class<ContainedObject>("ContainedObject") > .def(luabind::constructor<>()) > .def_readwrite("value", &ContainedObject::value), > > luabind::class_<ContainerObject>("ContainerObject") > .def_readwrite("containervalue", &ContainerObject::containervalue) > .def_readwrite("vec", &ContainerObject::vec, > luabind::return_stl_iterator) > ]; > > ContainerObject cont; > ContainedObject Obj; > > Obj.value = 10; > > cont.push_back(Obj); > cont.containervalue = 15; > > luabind::call_function<void>(L, "LuaFunction", &cont); > > std::cout << cont.containervalue << std::endl; > std::cout << cont.vec[0].value << std::endl; > > > > Lua code: > function LuaFunction( cont ) > print (cont.containervalue) > cont.containervalue = 30 > for things in cont.vec > do > print (things.value) > things.vlaue = 5 > end > end > > > Which prints out: > 15 > 10 > 30 > 10 > So I am able to modify the containervalue of ContainerObject, but I am not > able to modify the ContainedObject value. Any thoughts here? Is luabind > making a copy of the vector as it passes it off? If so is there a by > reference way possible? > > ------------------------------ > Hitta skönaste vinterresan här! MSN Resor <http://resor.se.msn.com/> > > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, > CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source code: > SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > luabind-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/luabind-user > > ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user