luabind 文档说要从 C++ 调用 Lua 派生的虚拟成员,您创建一个派生自的包装类luabind::wrap_base
并调用函数,如下所示:
class BaseWrapper : public Base, public luabind::wrap_base
{
public:
virtual void foo()
{
call<void>("foo");
}
};
到目前为止一切顺利 - 我有这么多工作。
但是我如何实现BaseWrapper::foo()
将被覆盖的foo
(在 Lua 端)调用为协程(使用resume_function
)而不是直接调用它call
呢?
这是使用非成员函数的方式:
luabind::object func = luabind::globals(L)["bar"];
luabind::resume_function<void>(func);
我认为我需要知道的是如何获取func
(foo
由 Lua 派生类实现),然后我现有的resume_function
逻辑应该按原样工作。