【发布时间】:2015-01-25 23:56:54
【问题描述】:
我在 C++ 程序中使用 libuv。我有两个继承自 C 的类 A 和 B。
我使用 libuv 并在 C 上声明了 uv_signal_t 的实例。创建 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 的源代码,但我不确定我是否想深入。
【问题讨论】: