Альтернативные реализации QSharedDataPointer и QSharedData
Мне было интересно, сталкивался ли кто-нибудь с системой типа QSharedDataPointer и QSharedData для неявного совместного использования, которая подходит для использования с идиомой pimpl, в альтернативной библиотеке Qt?
Я пытался избежать добавления дополнительных зависимостей в мою систему, если это возможно, и мне просто интересно, какие у меня могут быть варианты.
2 ответа
Подобную систему можно найти здесь. Основное отличие состоит в том, что boost::shared_ptr используется для того, чтобы иметь общий указатель с подсчетом ссылок, а не требовать, чтобы объект наследовал от предоставленного класса, который обеспечивает функциональность подсчета ссылок.
Хотя я еще не пробовал его, он может иметь немного более высокие издержки по сравнению с qSharedDataPointer из-за разыменования boost::shared_ptr, однако стоимость компенсирует его более удобное использование.
Adobe предоставляет
copy_on_write<T>
заголовок в их stlab- библиотеке.