特定の条件下でイベントを実行するためにシグナルを使用するクラスを作成するために、boost::signals2 を使用しています。このクラスには、 RegisterCallbackというメソッドがあります。
この関数は、シグナルが使用するスロット タイプのパラメータを取る必要があります (唯一の引数としてdoubleを持つvoid戻りタイプです)。
ただし、signal1 クラスのソース ファイルはまったく判読できないため、メソッド シグネチャでその引数をどのように定義すればよいかよくわかりません。
だから私は基本的にこれをしたい:
myTimer(interval);
myTimer.RegisterCallback(&aCallbackFunction);
メンバーシグナルは次のとおりです。
boost::signals2::signal<void (double)> m_signal;
...そして、これが私が必要とする登録方法です(未完成)
/**
* Register a callback function that will be called when the timer interval elapses.
*/
void RegisterCallback(const boost::signals2::signal1<???????> &slot)
{
m_signal.connect(slot);
}