Альтернативные реализации QSharedDataPointer и QSharedData

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

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

2 ответа

Решение

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

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

Adobe предоставляет copy_on_write<T>заголовок в их stlab- библиотеке.

Другие вопросы по тегам