connect
занимает typename SIG_T::slot_type const &
.
operator()
занимает typename SIG_T::argument_type
(также определяется как typename SIG_T::arg<0>::type
).
Кроме того, вы можете использовать шаблоны, чтобы не беспокоиться о точном определении и принять все, что можно преобразовать в правильные типы:
template <typename Slot> void connect(Slot const & slot) {s.connect(slot);}
template <typename Arg> void fire(Arg const & arg) {s(arg);}