3

我正在使用Luabind将 C++ 类绑定到 Lua。从 Lua 脚本中,我可以将任意属性(键/值对)添加到代表我的类的表中,即使我从未告诉 Luabind 这些属性存在:

cheese = Cheese()
cheese.type = "gouda"
cheese.age = 2
cheese.hippopotamus = "monkey" -- Oops! This member was not defined!

hippopotamus 行虽然很荒谬,但执行时不会导致 Lua 错误。

如何防止这些新属性?我知道当只使用 Lua C API 时,这可以使用 __newindex 元方法来完成,但是有没有办法用 Luabind 做到这一点?

4

1 回答 1

1

我不是根据经验说话,但这里有一些来自 luabind-user 邮件列表的电子邮件线程:首先,一个人的独白试图完全按照你的意愿行事。其次,来自 luabind 维护者的有点旧的(2009 年 11 月)电子邮件,指出目前无法提供自定义 __newindex 元方法,但计划在 1.0中提供(当前版本是 0.9.something)。

于 2011-06-02T13:54:47.420 回答