2010-03-03 52 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