Простая система событий в C ++

Я разрабатываю простую систему событий для своего игрового движка. Я хочу реализовать следующий интерфейс диспетчера событий:

// Create event dispatcher.
Dispatcher dispatcher;

// Create objects b and c.
// Created objects extend base A class.
A* b = new B();
A* c = new C();

// Register b and c in dispatcher.
// I guess I should also pass member function pointer,
// but I am not sure how to do it.
// Like this; dispatcher.Add(b, &B::DoWork) ?
// Member function that I want to accept is always bool func(/*no params*/)
dispatcher.Add(b /*, member function pointer?*/);
dispatcher.Add(c /*, member function pointer?*/);

// Trigger passed functions for registered objects.
dispatcher.Trigger();

Думаю, мне понадобится какая-то структура-обертка внутри Dispatcher для хранения пары [pObject, pFunc].

struct Wrapper
{
   A* pObj; // Of base class A.
   // ??    // Pointer to given member function of A.
};

Я не знаю, как реализовать логику указателя на функцию-член. Поскольку мне это нужно для системы реального времени, я бы предпочел относительно быстрое решение. Я ценю все предложения.

Я бы предпочел избегать сторонних библиотек.

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

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