Aşağıdaki kodu göz önünde bulundurun:C++ yöntem çağrı dağıtıcısı oluşturmak mümkün mü?
struct X {
void MethodX() {
...
}
};
struct Y {
void MethodY() {
...
}
};
void test() {
X x;
Y y;
Dispatcher d;
d.Register("x", x, &X::MethodX);
d.Register("y", y, &Y::MethodY);
d.Call("x");
d.Call("y");
}
Soru, Dağıtımcının nasıl uygulanacağıdır. X ve Y'nin bir şeyden miras alabileceğini düşünmüyorum, fakat Dispatcher daha fazla istemciye izin vermelidir (sadece X ve Y değil). Ve mümkünse void * işaretçilerden kaçınmak istiyorum :)
Yükseltme kitaplığına erişiminiz var mı? –
"Sorun, yöntem işaretleyicilerini veya functor'ları koruyan veri yapısının türüdür." –
Bunu std :: tr1 :: mem_fun şablonuyla uygulamaya çalışıyorum. Ancak sonucun tipi parametrelerin türünde vardı. Bu yüzden onu içeren heterojen bir vektör yapamadım. –