QAbject versatilty делает его довольно большим.Легкий QObject - совместимый базовый класс
Я хочу использовать его только для статических свойств (по существу, только QMetaObject), без возникновения массива байтовый штраф за наследование от QObject.
Есть ли легкий эквивалент?
Редактировать
Вот результаты профилирования - это больно, чтобы иметь ~ 30 Мб неиспользуемые для задачи среднего размера (некоторые из них могут быть ~ 20x больше). Обратите внимание на отношение b-записи - конструктор QObject устанавливает много состояний, которые почти никогда не проверяются.
==10302== ======== ORDERED BY decreasing "max-bytes-live": top 10 allocators ========
==10302==
==10302== -------------------- 1 of 10 --------------------
==10302== max-live: 31,264,224 in 229,884 blocks
==10302== tot-alloc: 31,264,224 in 229,884 blocks (avg size 136.00)
==10302== deaths: none (none of these blocks were freed)
==10302== acc-ratios: 0.01 rd, 1.16 wr (459,768 b-read, 36,321,672 b-written)
==10302== at 0x4C275C0: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_exp-dhat-amd64-linux.so)
==10302== by 0x53E1551: QObject::QObject(QObject*) (in /usr/lib64/qt4/libQtCore.so.4.8.5)
==10302== by 0x50465CA: Util::Util() (util.h:84)
Вам вообще не нужно наследовать QObject. какие функции вам нужны? –
'this-> metaObject() -> свойство (int)' и связанное. – qdot
Мета-компиляция применяется только к типам производных QObject. Насколько я знаю, нет никакого способа справиться с этим. Или вам придется реализовать свою собственную систему собственности. – jbh