un code paraît ci-dessous:Est-il possible de créer un répartiteur d'appel de méthode en C++?
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");
}
La question est de savoir comment mettre en œuvre Dispatcher. Cela ne me dérange pas que X et Y puissent hériter de quelque chose, mais Dispatcher devrait autoriser d'autres clients (pas seulement X et Y). Et je voudrais éviter les pointeurs de void * si possible :)
avez-vous un accès à la bibliothèque boost? –
Pourriez-vous s'il vous plaît clarifier "Le problème est le type de structure de données gardant les pointeurs ou les foncteurs de la méthode." –
J'essayais de l'implémenter avec le template std :: tr1 :: mem_fun. Mais le type de résultat avait à l'intérieur le type de paramètres. Donc je ne pouvais pas faire un vecteur hétérogène le contenant. –