使用しているCライブラリのコールバックとしてメンバー関数を設定しています。Cライブラリは次のようなコールバックを設定します。
typedef int (*functionPointer_t)(myType1_t*, myType2_t*, myType3_t*);
setCallback(param1, param2, functionPointer, param4)
boost :: bind(可能な場合)を使用して関数ポインターを渡したいと思います。ポイントされている関数は、静的メンバーではなく、インスタンス化されたクラスのメンバーであることが望ましいです。例えば
Class A {
public:
A();
protected:
int myCallback(myType1_t*, myType2_t*, myType3_t*); //aka functionPointer_t
}
これは、boost::bindとboost::functionを使用して実行できますか?クラスメンバー関数をコールバックとして渡すにはどうすればよいですか?(3番目の答え)私は次のことを宣言できるようです(どこか、またはtypedefとして):
boost::function<int (A*, myType1_t*, myType2_t*, myType3*> myCallbackFunction
そして、A(ctor)のどこかでそのタイプのboost :: bindを呼び出し、それをCライブラリ呼び出しに渡します。
これは可能ですか、それとも私はオフベースですか?どうもありがとう。