Возврат таблиц объектов из C++, принятие политики
Используя 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 ];
Как я могу сказать luabind стать владельцем объектов, хранящихся в таблице (новый lua_Object( ...))? Что бы обойти?
Спасибо -
1 ответ
Замещать
result[ index ++ ] = o
с
result[ index ++ ] = luabind::object(L, o, luabind::adopt(luabind::result));
На заметку, вам не нужно регистрироваться create_table
с raw(_1)
политика?