次の関数をC++で実装できますか?myInstance
インスタンスに変数を含めるのではなく、コールバックメソッドが呼び出されるまで変数を指定しないでおく必要がありboost::bind
ます。
MyClass *myInstance;
void call(/* boost::mem_fn */ callback)
{
// Somewhere in this function, the operator()() method
// is called on the callback instance
callback(myInstance);
}
call(boost::mem_fn(&MyClass::myMethod));
boost::mem_fn
これは特定のオブジェクトを返す関数であることは理解していますが、そのタイプはわかりません。ドキュメントには、リターンタイプとして未指定と記載されています。コンストラクターの1つがこのboost::bind
型をパラメーターとして受け取りますが、その実装で実際の宣言を見つけることができません。また、この特定のタイプの独自のインスタンスを保存することも許可されていますか、それともこれは厳密にブースト関数で使用するためのものですか?