std::function
, üye işlevlerini tutabildiğinden, nesne örneğine bir işaretçiyi bir yerlerde depolamalıdır.Bu işaretçi std :: function'dan nasıl alabilirim?
Bir üye işlevini tutan std::function
this
işaretçisini nasıl getirebilirim?
std::function
, üye işlevlerini tutabildiğinden, nesne örneğine bir işaretçiyi bir yerlerde depolamalıdır.Bu işaretçi std :: function'dan nasıl alabilirim?
Bir üye işlevini tutan std::function
this
işaretçisini nasıl getirebilirim?
std::function
türünde bir nesne callable nesnesini tutar. Üye işlevine bir işaretçi, bir tür değiştirilebilir nesne; Uygun sınıf türünün bir argümanı ve ihtiyaç duyduğu ek argümanlar ile çağrılabilir. Örneğin:
struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);
aramak için, tip S
bir nesne pass: std::function
nesne bir S
nesne sahibi olmadıklarını
S s;
g(s, 3);
Not; Sadece işlev işaretçisinin bir nesneye bağlı olduğunu söylediğinizde.
Amacım, std :: function işlevi olarak başka bir işleve geçemediğim lambdaları açmaktır. Öyleyse nasıl yapabilirim? Unwrapping tarafından daha fazla işlemek için 'std :: function :: target' kullanarak bir' '' '' pointer'' ve bir statik fonksiyon göstericisine ayırmak istiyorum. – danijar
@danijar: Hedefinizi neden kendi isteğinize dahil etmiyorsunuz? Senin sorunun çok mantıklı değil. – GManNickG
@danijar '' bu' işaretçisini bağlayan ve geri almayı sağlayan kendi işlev nesnesini oluşturabilirsiniz. – Pubby
Örneğinize bir göz attınız mı? http://en.cppreference.com/w/cpp/utility/functional/function? –
@OliCharlesworth. Tabi ki yaptım. Cevaba körü olup olmadığımı söyle. – danijar
Bu tür bilgilerin kütüphanede kasıtlı olarak ortaya çıkmadığından ve dolayısıyla taşınabilir bir şekilde erişilemediğinden eminim. –