Pourquoi créer un objet slot ? La fonction "connect" doit pouvoir accepter directement n'importe quel type de "callable" compatible avec la signature du signal (via un peu de meta-programmation intelligente). Je l'ai fait récemment dans un projet et ça fonctionne parfaitement.
void f(int);
void f2(int, int);
struct C
{
void f(int);
}
C c;
Signal<int> sig;
sig.connect(&f);
sig.connect(&C::f, c);
sig.connect(std::bind(&f2, std::placeholders::_1, 10));
sig.connect([](int arg){});