如何防止在Luabind类中创建新属性?

时间:2011-06-01 16:31:07

标签: c++ lua luabind

我正在使用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做到这一点?

1 个答案:

答案 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)。