3

私は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でこれを行う方法はありますか?

4

1 に答える 1

1

私は経験から語ることはありませんが、以下に luabind-user メーリング リストからの電子メール スレッドをいくつか示します。2 つ目は、luabind メンテナからのやや古い (2009 年 11 月) 電子メールで、カスタム __newindex メタメソッドの提供は現在不可能であるが、1.0 で計画されている(現在のバージョンは 0.9.something) と述べています。

于 2011-06-02T13:54:47.420 に答える