Re: return_stl_iterator acting as const?
Kristoffer Danielsson <[email protected]>
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <[email protected]> |
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? _________________________________________________________________ Har du eller dina kompisar bästa stilen? http://msn.outfit.se ------------------------------------------------------------------------------ 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