Коллекция std :: functions с разными аргументами
Я пытаюсь написать простой диспетчер, пользовательский код может прикрепить к нему обратные вызовы. Каждое событие имеет известную подпись, и пользовательский код должен будет вызывать диспетчеризацию с правильным числом и типом аргумента. Это управляется аргументами variadic. Но freestandingInt не принимается, так как вектор имеет неправильный тип. Как сделать это универсальным?
Следует минимальному примеру
void freestanding() {
std::cout < "freestanding" < std::endl;
}
void freestandingInt(int iArg) {
std::cout < "freestandingInt " < iArg < std::endl;
}
struct Dispatcher {
typedef struct Event_ {
std::vector