C++ プログラムで libuv を使用しています。C を継承する A と B の 2 つのクラスがあります。
libuv を使用し、uv_signal_t
C で のインスタンスを宣言しました。 のインスタンスを作成するにuv_signal_t
は、コールバックを渡す必要があります。静的メンバー関数への参照の問題を回避するために、ラムダを C 関数に簡単に渡すことができます。
const int32_t r = uv_signal_start(&this->signal, [](uv_signal_t *handle, int signum){}, SIGABRT);
しかし、子クラスごとに異なるコールバックの実装を提供するにはどうすればよいでしょうか? 理想的には、C.cpp にいくつかの共通コードを実装し、各子に追加のコードを実装します。
アップデート
明確にするために、libuv で定義されているため、コールバック メソッドのシグネチャを変更することはできません。libuv のソースを編集することはできますが、そこまで深く掘り下げたいかどうかはわかりません。