2010-03-03 50 views
7

我知道question has already been asked和回答,但它是一年多前,它看起來有新的選擇。我應該選擇哪種C++事件/委託(信號/槽)庫?

所以我編寫了一個SFML library(我開始發現非常酷的實際)遊戲,我正在尋找一個輕快的事件/代理庫。

在做了一些研究並擱置了經典的(Boosts.Signals,libsigc++)後,我發現「cpp-events」。它現在看起來並不普遍 - 因爲它是一個非常新的圖書館 - 但它似乎最差的被測試。我會非常感興趣的是,如果有人在這裏嘗試過,並且可以給予一點反饋。

您是否有其他類似(或更好)的選項可供選擇?我看起來相當真實的項目(這將保持)比論壇上的答案。

謝謝!

+0

另一個問題可以用新答案和/或編輯進行更新。 – 2010-03-03 01:12:55

回答

3

我的感覺是http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx是遊戲的一個很好的實現。沒有動態內存分配,合理的性能,易於調試=>非常適合遊戲。

我以前用過類似的代表,這個實現看起來更有效率。

你建議你提到的線程安全,但我不會習慣線程間使用的基於委託的接口。這對於一個小型項目來說可能效果不錯,但如果一個團隊不斷髮展,潛在的災難也會如此。我也會質疑這種功能對性能的影響。

3

另請參閱Boost.Signals2這是Boost.Signals的線程安全版本。我在一箇中等規模的項目中使用它,我對此很滿意。

+0

+1即使不需要線程安全性,我也會使用Signals2,因爲它也僅用於標題。 – Tronic 2010-03-03 07:10:11