2016-07-15 7 views
0

C++シグナルを異なるパラメータリストのスロットにリンクすることはできますか?異なるパラメータを持つC++ブースト信号とスロット?

すなわち、一つのスロットが1つのパラメータを受け取り、他の一つは、2取るなど...

そして、あなたはその後、1つのまたは2のパラメータと、その信号を呼び出し、それが対応するスロットを呼び出しますか?

答えて

1

いいえ、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引数型を定義することを回避することができます。サブクラスによって定義されます。

関連する問題