使用Boost.Signals时,boost允许您从boost::signals::trackable
派生以简化对象/连接生命周期管理(请参阅boost documentation)。
我现在处于项目的早期阶段,我在想,是否从boost::signals::trackable
派生
trackable
基础课程的功能第一种方法的主要原因是为了防止我忘记从boost::signals::trackable
派生。
还有双重推导,如
class Foo : public Base, public boost::signals::trackable
{
};
变得没必要。
另一方面,防止内存泄漏不应该是主要的设计方面。应该使用像valgrind这样的测试和分析工具来检测内存泄漏。
哪种方法更适合发展项目?
答案 0 :(得分:3)
请注意,Boost.Signals2
取代Boost.Signals
。它具有更灵活和更强大的tracking mechanism。
虽然该库旨在为多线程程序提供线程安全的解决方案,但通过将boost::signals2::dummy_mutex
设置为信号的内部互斥锁,可以在single-threaded environment中避免锁定开销。
答案 1 :(得分:1)
Qt-Event系统强制程序员从QObject
派生,因此在使用Qt-Events时你确实在保存方面。