我正在使用Luabind将C++类绑定(bind)到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做到这一点?

最佳答案

我没有经验,但以下是luabind用户邮件列表中的一些电子邮件主题:首先,a monologue by a guy trying to do exactly what you want。其次,来自luabind维护者的较旧的电子邮件(2009年11月),说明providing custom __newindex metamethod is not currently possible, but planned for 1.0(当前版本为0.9.something)。

关于c++ - 如何防止在Luabind类中创建新属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6204576/

10-14 16:31