Нет, arity экземпляра signal
определяется его типом. Если рассмотреть определение boost::signals2
template class (или устаревшей boost::signals
):
template<typename Signature,
typename Combiner = boost::signals2::optional_last_value<R>,
typename Group = int, typename GroupCompare = std::less<Group>,
typename SlotFunction = boost::function<Signature>,
typename ExtendedSlotFunction = boost::function<R (const connection &, T1, T2, ..., TN)>,
typename Mutex = boost::signals2::mutex>
class signal : public boost::signals2::signal_base {
Вызывающая подпись сигнала и его слотов фиксируются в параметрах шаблона.
Обходным решением было бы определить тип аргумента Event
, который может содержать несколько видов данных, например. определенных подклассами.