我正在使用Luabind将C ++类绑定到Lua。从Lua脚本,我可以向表示我的类的表添加任意属性(键/值对),即使我从未告诉Luabind这些属性存在:
cheese = Cheese()
cheese.type = "gouda"
cheese.age = 2
cheese.hippopotamus = "monkey" -- Oops! This member was not defined!
河马线虽然没有意义,但会在不造成Lua错误的情况下执行。
如何阻止这些新属性?我知道当使用Lua C API时,这可以使用__newindex元方法完成,但有没有办法用Luabind做到这一点?
答案 0 :(得分:1)
我不是根据经验说话,但是这里有来自luabind-user邮件列表的一些电子邮件主题:首先是a monologue by a guy trying to do exactly what you want。第二,有些陈旧(2009年11月)来自luabind维护者的电子邮件,说明providing custom __newindex metamethod is not currently possible, but planned for 1.0(当前版本是0.9.something)。