1

使用 Boost.Signals 时,boost 允许您派生自boost::signals::trackable,以简化对象/连接生命周期管理(请参阅boost 文档)。

我处于我的项目的早期阶段,我正在考虑,是否boost::signals::trackable

  • 我写的每一个可能在未来使用 Boost.Signals 的新类
  • 或者只有在课堂上,我确信他们将需要基本trackablee 级的功能

第一种方法的主要原因是防止我忘记从boost::signals::trackable.

还有双重推导,例如

class Foo : public Base, public boost::signals::trackable
{
};

变得不必要。

另一方面,防止内存泄漏不应该是主要的设计方面。应该使用 valgrind 等测试和分析工具来检测内存泄漏。

哪种方法更适合成长中的项目?

4

2 回答 2

3

请注意,Boost.Signals2取代Boost.Signals. 它具有更加灵活和强大的跟踪机制

尽管该库旨在为多线程程序提供线程安全的解决方案,但可以通过设置为信号的内部互斥体来避免单线程环境中的锁定开销。boost::signals2::dummy_mutex

于 2013-06-03T07:02:06.270 回答
1

Qt 作为替代品

Qt-Event 系统强制程序员从中派生,QObject因此在使用 Qt-Events 时您确实处于保存状态。

于 2013-08-17T16:02:19.970 回答