我应该选择哪个轻量级C++事件/委托(信号/槽)库?

7
我知道这个问题已经被提出和回答了,但是已经超过一年了,看起来有新的替代方案。
所以,我正在使用SFML库编写游戏(事实上,我开始发现它非常酷),我正在寻找一个轻量且快速的事件/委托库。
经过一些研究并放弃了传统的选择(Boosts.Signalslibsigc++),我发现了“cpp-events”。它看起来现在不是很受欢迎,因为它是一个非常新的库,但它似乎值得测试。如果有人在这里尝试过它并可以给一点反馈,我会非常感兴趣。
你有其他类似(或更好)的选择吗?我更喜欢真实的项目(将维护)而不是论坛上的答案。
谢谢!

另一个问题可以更新新的答案和/或编辑。 - Matthew Flaschen
2个回答

3
我的感觉是,http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx 是一个非常适合游戏的实现。没有动态内存分配,性能合理,易于调试 => 对于游戏来说非常好。
过去我使用过类似的委托,但这个实现看起来更加高效。
你提到的那个委托实现提到了线程安全,但我不太喜欢在线程之间使用基于委托的接口。这可能在小项目上很好用,但如果团队规模增大,潜在的灾难也会增加。我还会质疑这种功能对性能的影响。

3

同时看看Boost.Signals2,它是Boost.Signals的线程安全版本。我在一个中等规模的项目中使用它,在工作中非常满意。


+1 我会使用 Signals2,即使不需要线程安全,因为它也是仅头文件的。 - Tronic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接