使用tolua++导航Lua类层次结构

我需要在 Lua 中浏览表示由 tolua++ 绑定的 C++ 类层次结构的元表层次结构。

例如,假设我在 C++ 中有一个 CFoo 类,它已被 tolua++ 绑定。在 Lua 中,我可以像下面这样创建这个类的实例(它成为 userdata 类型):

local s = CFoo.new()

我可以使用以下代码获取元表:

local mt = getmetatable(s)

我可以使用以下代码检查这个类的绑定成员:

for i,v in pairs(mt[".get"]) do
    -- Blah...
end

然而,mt[".get"] 仅包含在此类中显式绑定的成员,而不包括在任何父类中绑定的成员。我需要遍历所有绑定的成员,包括父类中的成员。

通过检查 tolua++ 源代码,似乎 tolua++ 在“tolua_super”全局表中保存超类信息。但是,如何从 Lua 方面导航此表并不清楚。

点赞