我在 C++ 程序中使用 libuv。我有两个从 C 继承的 A 和 B 类。
我使用 libuv 并uv_signal_t
在 C 上声明了一个实例。创建一个实例uv_signal_t
需要传递一个回调。我可以轻松地将 lambda 传递给 C 函数来解决引用静态成员函数的问题:
const int32_t r = uv_signal_start(&this->signal, [](uv_signal_t *handle, int signum){}, SIGABRT);
但是如何为每个子类提供不同的回调实现呢?理想情况下,我会在 C.cpp 上实现一些通用代码,并在每个孩子上实现额外的代码。
更新
需要明确的是,我无法更改回调方法的签名,因为它是由 libuv 定义的。我可以编辑 libuv 的源代码,但我不确定我是否想深入。