Коллекция 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

Ответы на вопрос(2)

Ваш ответ на вопрос