умные указатели: совместное владение: ненавязчивая / навязчивая стратегия - PullRequest
0 голосов
/ 05 января 2012

Мы знаем, что совместное владение имеет две основные стратегии:

  • ненавязчивый и
  • навязчивый

Пожалуйста, помогите мне понять, для чегостратегии означают?Какие детали реализации?

1 Ответ

0 голосов
/ 05 января 2012

Ненавязчивый - это когда объект интеллектуального указателя обеспечивает подсчет ссылок. Пример: std::shared_ptr, boost::shared_ptr

Нарушение - это когда интеллектуальный указатель полагается на встроенный счетчик ссылок на хранимые объекты (т.е. хранящийся объект отвечает за счет ссылок). Пример: boost::intrusive_ptr

Примечание: для навязчивого указателя требуется код "склеивания" для увеличения и уменьшения счетчика ссылок внутри хранимого объекта. В расширенной библиотеке вы должны предоставить 2 функции объекту intrusive_ptr для выполнения увеличения и уменьшения счетчика ссылок.


умные указатели (повышение) объяснил Здесь нет прямого ответа на мой вопрос, но он очень полезен как краткий обзор семантики умных указателей.

...