Well they are pretty usefull if you want to inherit from a c++ class.
I'm making a game engine and these lua-class are awesome to add new
Types to the engine :)
On 12/12/2015 18:28, Michael Steinberg wrote:
> Nevermind... I will try to reproduce later.
> And I need to find out what's the use for having these lua-only
> classes... :)
>
> Am 12.12.2015 um 15:10 schrieb jean-baptiste griffo:
>> This works for me too in such a case, but it fails if the object is a
>> luabind 'class' object, as in the OP message:
>>
>> class 'MyLuaClass'
>> function MyLuaClass:__init() end
>>
>> foo = MyLuaClass()
>> foo.bar = "baz";
>> PrintAttributes(foo);
>>
>>
>>
>> On 12/12/2015 14:48, Pavel Kovalenko wrote:
>>> This example works for me (but I use another fork:
>>> https://github.com/decimad/luabind-deboostified)
>>>
>>> lua code:
>>>
>>> local obj = {}
>>> obj.foo = function (self)
>>> puts("obj:foo")
>>> end
>>> obj.data = 42
>>>
>>> dump_object(obj)
>>>
>>> cpp code:
>>>
>>> void dump_object(const luabind::object &obj)
>>> {
>>> for (luabind::iterator it(obj), end; it!=end; it++)
>>> {
>>> auto s = object_cast<std::string>(it.key());
>>> puts(s.c_str());
>>> }
>>> }
>>>
>>> What kind of lua object are you trying to iterate over?
>>> On 12/12/2015 0:23 AM, jean-baptiste griffo wrote:
>>>> Hi,
>>>>
>>>> Well it's weird but I don't remember the exact fork I'm using, I think I
>>>> use this one
>>>> https://github.com/mrsharpoblunto/LHP/tree/master/luabind-0.7/include/luabind
>>>> I do not use the official release because I had some problems related to
>>>> size_t & x64 builds, and this fork solved it.
>>>>
>>>> Here is the c++ code, please note that at this point I'm 100% sure the
>>>> object on the stack is the "self" of my class instance
>>>>
>>>> //get the luabind object from the stack
>>>> luabind::object o(luabind::from_stack(L, lastIndex));
>>>>
>>>> for (luabind::iterator i(o), end; i != end; ++i)
>>>> {
>>>> try
>>>> {
>>>> std::string strKey = luabind::object_cast<std::string>(i.key());
>>>> printf("%s\n",strKey.c_str());
>>>> }
>>>> catch(luabind::cast_failed & e)
>>>> {
>>>> printf("error\n");
>>>> }
>>>> }
>>>>
>>>> ----------
>>>>
>>>> As a result, it simply prints "error" indefinitely.
>>>>
>>>> Thanks.
>>>>
>>>>
>>>> On 11/12/2015 17:57, Pavel Kovalenko wrote:
>>>>> Hi,
>>>>>
>>>>> I don't have such problem (using luabind-deboostified fork). Could you
>>>>> show the code which causes an infinite loop? Which fork do you use?
>>>>>
>>>>> On 12/11/2015 3:00 PM, luabind-user-request@... wrote:
>>>>>> Send luabind-user mailing list submissions to
>>>>>> luabind-user@...
>>>>>>
>>>>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>>>> https://lists.sourceforge.net/lists/listinfo/luabind-user
>>>>>> or, via email, send a message with subject or body 'help' to
>>>>>> luabind-user-request@...
>>>>>>
>>>>>> You can reach the person managing the list at
>>>>>> luabind-user-owner@...
>>>>>>
>>>>>> When replying, please edit your Subject line so it is more specific
>>>>>> than "Re: Contents of luabind-user digest..."
>>>>>>
>>>>>>
>>>>>> Today's Topics:
>>>>>>
>>>>>> 1. Re: How to get the attributes of a lua class without their
>>>>>> names, using luabind (Crashy)
>>>>>>
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>>
>>>>>> Message: 1
>>>>>> Date: Thu, 10 Dec 2015 05:07:38 -0700 (MST)
>>>>>> From: Crashy <jean-baptiste.griffo@...>
>>>>>> Subject: Re: [luabind] How to get the attributes of a lua class
>>>>>> without their names, using luabind
>>>>>> To: luabind-user@...
>>>>>> Message-ID: <1449749258848-7670726.post@...>
>>>>>> Content-Type: text/plain; charset=us-ascii
>>>>>>
>>>>>> 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.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>>
>>>>>> _______________________________________________
>>>>>> luabind-user mailing list
>>>>>> luabind-user@...
>>>>>> https://lists.sourceforge.net/lists/listinfo/luabind-user
>>>>>>
>>>>>>
>>>>>> End of luabind-user Digest, Vol 94, Issue 1
>>>>>> *******************************************
>>>>>>
>>>>>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> luabind-user mailing list
>> lua...@li...
>> https://lists.sourceforge.net/lists/listinfo/luabind-user
>
> ------------------------------------------------------------------------------
> _______________________________________________
> luabind-user mailing list
> lua...@li...
> https://lists.sourceforge.net/lists/listinfo/luabind-user
|