|
On Aug 7, 2005, at 19:08:25, Mike Pall wrote:
Uli Kusterer wrote:Looking at the sources, I get the impression that luaL_checkudata() returns NULL for subclasses of the requested type. Is there a facility to do the equivalent of luaL_checkudata() but also look at metatables higher up?I have contributed a small patch for Lua 5.1 that adds support for subclasses to luaL_checkudata() and luaL_newmetatable(). It's in the mailing list archives: http://lua-users.org/lists/lua-l/2005-06/msg00000.html
Mike,thanks, that looks nice. If I understand correctly, this still requires me to specify the methods completely for each class, though? In that case I'll probably stick with an unpatched version for now and check manually. That way, it's *all* manual, and it's obvious they're separate classes. Otherwise, this half-class-hierarchy will only confuse me when I come back to the code after a hiatus. :-S
But thank you for pointing me at your code: It provides a great insight into the workings of that part of Lua, and could be a great starting point for a real implementation of multiple inheritance for userdata-based objects in Lua.
Cheers, -- M. Uli Kusterer http://www.zathras.de