luabind を使用して、C++ からオブジェクトのテーブルを作成します
luabind::object create_table(lua_State *L)
{
luabind::object result = luabind::newtable(L);
int index = 1;
for ( ... ) {
lua_Object *o = new lua_Object( ... );
result[ index ++ ] = o;
}
return result;
}
関数を次のように登録します
module(L)
[
def("create_table", &create_table)
]
および lua_Object として
class_<lua_Object> reg("Object");
reg
.def(constructor<float,float>())
;
module(L) [ reg ];
テーブルに格納されているオブジェクト ( new lua_Object( ... ) ) の所有権を取得するように luabind に指示するにはどうすればよいですか? 回避策は何ですか?
ありがとう -