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

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

cheese = Cheese()
cheese.type = "gouda"
cheese.age = 2
cheese.hippopotamus = "monkey" -- 噢!这个成员没有被定义过!

虽然无意义,但 hippopotamus 行将在不引发 Lua 错误的情况下执行。

如何阻止这些新属性?我知道在使用 Lua C API 时可以使用 __newindex 元方法来实现,但是否有办法在使用 Luabind 时这样做?

原文链接 https://stackoverflow.com/questions/6204576

点赞
stackoverflow用户169828
stackoverflow用户169828

我没有经验,但这里有一些来自 luabind-user 邮件列表的电子邮件线程:

首先,这是一个人试图做到你想做的事情的独白

第二,luabind 维护者在2009年11月发出的电子邮件,说明目前不可能提供自定义 __newindex 元方法,但计划在1.0版本中实现(当前版本是0.9.某些东西)。

2011-06-02 13:54:47