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,
|