我正在开发一个C++程序,它本质上只是执行Lua脚本。在该Lua脚本中,构造了从我的C++程序导出的类。
我的main() C++函数在做一些准备工作后调用...
现在我的 Lua 脚本看起来像这样:
相比之下
有人知道这是为什么吗?我有什么遗漏的吗?
我的main() C++函数在做一些准备工作后调用...
luabind::call_function<void>(m_L, "main");
现在我的 Lua 脚本看起来像这样:
local function test()
local c = C()
end
function main()
for i=1,2 do
log(i)
test()
end
end
我在 C 的析构函数中加入了 std::cout << "destructor" << std::endl;,这样我就可以知道何时调用它。我期望 lua 的垃圾回收每次在 test() 执行结束时调用 c 的析构函数,因为这时它已经超出了范围。然而,我看到以下输出:
1
2
destructor
destructor
相比之下
1
destructor
2
destructor
有人知道这是为什么吗?我有什么遗漏的吗?
lua_gc
或在Lua中使用collectgarbage
。 - sbk