adlı bir işleve sahip Reciever
adında bir sınıfım var; Event
, BaseEvent
öğesinden devralınır. Bu sınıfın belirli bir örneğine bir bağlantı oluşturmak istiyorum. Örnek rec
olarak adlandırılır.Temel argümanlı bir işleve türetilmiş bir argümanla nasıl işlev yapabilirim?
std::vector<std::function<void(const BaseEvent*)>>
: girdi, değil bir
Event
olarak
BaseEvent
alır şöyle bir
std::function
belirtmek için bir vektör bu depolamak çalıştığınızda
void(Reciever::*func)(const Event *) = &Reciever::recieve;
auto recievePtr = std::bind(func, &rec, std::placeholders::_1);
Ancak, var: Bu ben kullanımını yapmak için
recievePtr
'u nasıl döküm yapabilirim, böylece vektörü düzgün bir şekilde saklayabilirim? Bu mümkün mü? Bir BaseEvent
için bir işlev işaretçisi kullanarak sorunu Reciever
tüm BaseEvent
Hmm, bu, bağlama ek yükünü kaldırır. Yine de daha iyi bir yol varsa merak ediyorum. – user975989