Рассмотрим следующий код:
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");
}
Вопрос в том, как реализовать Dispatcher.
Я не возражаю против того, что X и Y могут наследовать от чего-то, но Dispatcher должен разрешать дальнейших клиентов (не только X и Y)
И я хотел бы избежать указателей void *, если это возможно:)