Hi !
I hate to 'bump' very old topics, but I'm facing the same problem while
writing a lua debugger.
I can access values by name, but using the iterator results in an infinite
loop.
Iterators are doing well when the object is a simple table though, it only
fails when the object is a luabind class.
Does anybody has a solution to iterate over member variables of a luabind
class ?
Thanks !
Thibault Ehrhart wrote
> Hello everyone,
>
> I have a Lua class (defined using luabind's 'class' keyword) and I'd like
> to get the value of the attributes defined in Lua, with C++.
>
> In the code below, I've defined a class, created an instance "foo" and set
> a custom attribute "bar" to that instance. Finally, I am calling a C++
> function which has to print the attributes of the instance passed as a
> parameter.
>
> Here's the Lua code :
>
> class 'MyLuaClass'
> function MyLuaClass:__init() end
>
> foo = MyLuaClass()
> foo.bar = "baz";
> PrintAttributes(foo);
>
> And now the C++ code of the PrintAttributes function, obj is a class
> instance:
>
> void PrintAttributes(luabind::object &obj)
> {
> // Direct access works
> std::cout << obj["bar"] << std::endl; // Will print "baz" :-)
>
> // But what if I don't know the name of the variable(s)?
> for (luabind::iterator it(obj); it != luabind::iterator(); ++it)
> {
> // Doesn't work since obj is an userdata
> }
> }
>
> I've also tried to use class_info but it only works with properties
> defined
> in a C++ class. Is there a way to access those defined with Lua?
>
> Regards,
--
View this message in context: http://lua.2524044.n2.nabble.com/How-to-get-the-attributes-of-a-lua-class-without-their-names-using-luabind-tp7654070p7670726.html
Sent from the Lua C++ Bind mailing list archive at Nabble.com.
|