При использовании Boost.Signals, Boost позволяет вам получить из boost::signals::trackable
для упрощения управления временем жизни объекта / соединения (см. форсировать документацию).
Я нахожусь на ранней стадии моего проекта, и я думаю, стоит ли выводить из boost::signals::trackable
в
trackable
Bas E-ClassОсновной причиной первого подхода было бы помешать мне забыть про boost::signals::trackable
,
Также двойные производные типа
class Foo : public Base, public boost::signals::trackable
{
};
получить ненужное.
С другой стороны, предотвращение утечек памяти не должно быть главным аспектом дизайна. Инструменты тестирования и профилирования, такие как valgrind, должны использоваться для обнаружения утечек памяти.
Какой подход больше подходит для растущих проектов?
Обратите внимание, что Boost.Signals2
аннулирует Boost.Signals
, Он имеет гораздо более гибкий и мощный механизм слежения.
Несмотря на то, что библиотека призвана обеспечить многопоточные программы, обеспечивающие многопоточное решение, можно избежать накладных расходов на блокировку в однопоточная среда установив boost::signals2::dummy_mutex
как внутренний мьютекс сигнала.
Система Qt-Event заставляет программиста наследовать QObject
так что вы действительно на стороне сохранения при использовании Qt-Events.