<分区>
我想在不使用 QT 的项目中使用信号/槽库。我有非常基本的要求:
- 连接两个具有任意数量参数的函数。
- 信号可以连接到多个插槽。
- 手动断开信号/槽连接。
- 性能不错 - 应用程序是基于帧的(即不是基于事件的),我想在每个帧中使用连接。
我读过 comparison between libsigc++ and Boost.Signals .我还读到 Boost.Signals 的性能不佳。但是,我知道还有其他库,但我仍然不确定应该选择哪个库。
对于信号/槽库有什么建议吗?
<分区>
我想在不使用 QT 的项目中使用信号/槽库。我有非常基本的要求:
我读过 comparison between libsigc++ and Boost.Signals .我还读到 Boost.Signals 的性能不佳。但是,我知道还有其他库,但我仍然不确定应该选择哪个库。
对于信号/槽库有什么建议吗?
最佳答案
首先,还是尝试使用 boost::signal。不要假设它不会足够快,直到你在你的应用程序的特定情况下尝试
如果效率不够高,可能类似于FastDelegate会满足您的需求吗? (我没有尝试过,但听说在某些 boost::signal 似乎不适合的情况下,这是一个很好的解决方案)。
无论如何,如果在您的应用程序中每帧都使用信号,则可能值得用更简单的东西替换信号系统,例如一个容器,其中包含将在每一帧调用的对象/仿函数。 Signal 更多的是为了允许即时的“事件”管理,而不是使循环周期动态化(允许更改调用每个帧的函数)。 (我有 my own solution(更新:它现在非常古老且陈旧),我在游戏中大量使用它,例如我的性能没有问题,所以也许类似的东西可以帮助)。
关于c++ - 我应该选择哪个 C++ 信号/槽库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12692996/