求高手帮忙在C++中写个深拷贝Lua table的函数
发布网友
发布时间:2022-05-08 22:07
我来回答
共3个回答
热心网友
时间:2024-01-27 07:10
static int tolua_bnd_deepcopy(lua_State* L)
{
if (lua_type(L,-1) == LUA_TTABLE)
{
lua_createtable(L,0,0);
lua_pushnil(L); /* first key */
while (lua_next(L, -3) != 0)
{
/* uses 'key' (at index -2) and 'value' (at index -1) */
//printf("%s - %s\n",lua_typename(L, lua_type(L, -2)),lua_typename(L, lua_type(L, -1)));
/* removes 'value'; keeps 'key' for next iteration */
tolua_bnd_deepcopy(L);
lua_pushvalue(L,-2);
lua_pushvalue(L,-2);
lua_rawset(L,-5);
lua_pop(L, 1);
}
lua_replace(L,-2);
}
return 1;
}
搜到你的问题发现没有结果,刚才自己写了个
热心网友
时间:2024-01-27 07:10
luaplus库里有个clone函数,你可以去参考参考,在LuaObject里面
热心网友
时间:2024-01-27 07:11
估计写c函数再用tolua++绑定后的调用效率不会有大改进。