渡された関数で動作するはずの別の関数に関数を渡します。例えば:
handler(fun1("foo",2))
handler(fun2(1e-10))
ハンドラーは、渡された関数を何度も呼び出すようなものです。ハンドラーfun1、fun2をC関数にバインドします。fun1とfun2は、cppクラスへのポインターを含むユーザーデータを返すので、どの関数がそれであったかをさらに回復できます。
ここでの問題は、fun1とfun2がハンドラーに渡される前に呼び出されることです。しかし、これは必要ありません。必要なのは、関数の種類とそのパラメーターです。ただし、ハンドラーなしでfun1とfun2を単独で呼び出すことができるはずです。
fun1("bar",3)
fun2(1e-5)
関数が呼び出されたコンテキストを取得することは可能ですか?
質問を入力しているときに、私は次のことができることに気づきました
handler(fun1, "foo",2);
handler(fun2, 1e-10);