1
我發現這個使用升壓信號的C++代碼,我試圖理解它。我想不出SelArity
仿函數會返回什麼。據我所知m_signal
是一種類型,可以聲明信號,將能夠連接到Signature
簽名的功能。如何將類型作爲參數?(請參見return BaseType::m_signal(arg);
)ResultType
代表的類型是什麼?並且我將如何能夠使用由函子SelArity
返回的對象?升壓信號 - 類型作爲參數傳遞
'arg'? 'arg'也是一個實例嗎?我也讀過boost文檔,如果'SignalType'是正確的(如果Signature是例如'void(float)'),則調用信號對象將不需要任何參數,例如 sig;'
'boost :: signal
'sig.connect(&print);'
'sig(5);'
那麼爲什麼我需要返回'SignalType'對象(也就是' m_signal')與一個參數?在這個例子中'm_signal'不是'sig'嗎?那麼爲什麼要用參數調用m_signal呢? –
@John Smith 1)是的,'arg'是參數(類型爲'BaseType :: SignatureTraits :: arg1_type')。 2)如果信號的簽名是'void(float)',調用者必須用一個參數調用它:'sig(5.0)'。 3)仿函數不返回信號對象,它*調用它並返回其返回值(參見文檔中的「組合器」)。 4)最後一點,但並非最不重要:我強烈建議您閱讀一本關於C++基礎知識的書!瞭解更多高級主題至關重要。 –