我嘗試實現一個模板類,它需要一個依賴於模板參數的信號成員。我的第一個想法就是去實現它類似如下:如何使用boost模板相關信號成員實現模板類?
的那類應使用類似:
class SignaledClass
{
public:
SignaledClass(void)
{
SignalClass<int> var1(boost::bind(&SignaledClass::ReceiveINT, this));
SignalClass<double> var2(boost::bind(&SignaledClass::ReceiveDOUBLE, this));
}
void ReceiveINT(int &_val)
{
...
}
void ReceiveDOUBLE(double &_val)
{
...
}
}
(順便說一句:我知道,這是沒有意義的只是創建SignalClass對象這只是爲了理解我的問題。)
對於我來說,使用模板作爲信號參數來實現類似委託的概念非常重要。
問題是構造函數代碼不起作用。
但我找到了一個解決方案。
如果我另外指定其他typedef
像
typedef typename OnReceive::slot_type slot_type;
,並使用該構造函數的參數,如
PushInputSlot(const slot_type& _slot);
了它的工作原理。 但我沒有真正的線索爲什麼。
我希望有人能幫助我。
感謝名單, 弗蘭克
P.S:我在計算器這就是爲什麼我不熟悉這裏的規則,新的。希望我在正確的方式做了一切...; - )....
它看起來像你在路上很好......只是在這裏和那裏缺少一個'typename' ......但爲什麼你想要把'boost :: signal'類包裝進去,而不是直接在'SignaledClass'中使用它' ? – Potatoswatter 2010-09-06 20:00:49