2013-11-20 4 views
0

Мне было интересно, если кто-нибудь столкнулся с такой системой, как QSharedDataPointer и QSharedData для неявного совместного использования, что подходит для использования с идиомой pimpl, в альтернативной библиотеке Qt?Альтернативные реализации QSharedDataPointer и QSharedData

Я пытался избежать добавления дополнительных зависимостей к моей системе, если это возможно, и просто интересно, какие могут быть мои варианты.

+0

Они достаточно просты, вы можете переопределить эти классы самостоятельно или извлечь их из Qt ... (применяются обычные предупреждения о лицензии). – peppe

ответ

0

Аналогичная система может быть найдена here. Основное различие заключается в том, что boost :: shared_ptr используется для того, чтобы иметь ссылку на общий общий указатель вместо того, чтобы требовать, чтобы объект наследовался от класса, который предоставляет функцию подсчета ссылок.

Хотя я еще не пробовал, он может иметь несколько более высокие накладные расходы по сравнению с qSharedDataPointer из-за разыменования boost :: shared_ptr, однако стоимость является компромиссом против более удобного использования.