我需要在 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 方面进行导航。