从boost :: signals :: trackable派生的频率是多少?

时间:2013-05-30 20:33:16

标签: c++ boost coding-style boost-signals boost-signals2

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

我现在处于项目的早期阶段,我在想,是否从boost::signals::trackable派生

  • 我编写的每个新类,将来可能会使用Boost.Signals
  • 或仅在课程中我确信他们需要trackable基础课程的功能

第一种方法的主要原因是为了防止我忘记从boost::signals::trackable派生。

还有双重推导,如

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

变得没必要。

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

哪种方法更适合发展项目?

2 个答案:

答案 0 :(得分:3)

请注意,Boost.Signals2取代Boost.Signals。它具有更灵活和更强大的tracking mechanism

虽然该库旨在为多线程程序提供线程安全的解决方案,但通过将boost::signals2::dummy_mutex设置为信号的内部互斥锁,可以在single-threaded environment中避免锁定开销。

答案 1 :(得分:1)

Qt作为替代

Qt-Event系统强制程序员从QObject派生,因此在使用Qt-Events时你确实在保存方面。