std::function
はメンバ関数を保持できるので、オブジェクトインスタンスへのポインタをどこかに格納する必要があります。std :: functionからこのポインタを取得するには?
メンバ関数を保持するstd::function
からthis
ポインタを取得するにはどうすればよいですか?
std::function
はメンバ関数を保持できるので、オブジェクトインスタンスへのポインタをどこかに格納する必要があります。std :: functionからこのポインタを取得するには?
メンバ関数を保持するstd::function
からthis
ポインタを取得するにはどうすればよいですか?
タイプstd::function
のオブジェクトは、呼び出し可能オブジェクトを保持します。メンバ関数へのポインタは、呼び出し可能なオブジェクトの一種です。適切なクラス型の引数と必要な追加の引数で呼び出すことができます。例えば:
struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);
がそれを呼び出すために、タイプS
のオブジェクト渡し:std::function
オブジェクトがをはS
オブジェクトを保持していないこと
S s;
g(s, 3);
注意。関数ポインタがオブジェクトにバインドされているということだけを呼び出します。
http://en.cppreference.com/w/cpp/utility/functional/function? –
@OliCharlesworth。もちろんやりました。私が答えに目が見えなかったかどうか教えてください。 – danijar
私は、この種の情報が意図的にライブラリに公開されておらず、ポータブルな方法ではアクセスできないと確信しています。 –