Re[5]: Возврат умного указателя из dll
От: Кодт Россия  
Дата: 07.12.05 22:57
Оценка:
Здравствуйте, dleather, Вы писали:

D>Каюсь... не увидел что Builder C++ 6 boost поддерживает. boost можно потом прикрутить. Сейчас не хочется разбираться (времени и так много ушло на "разбор полетов"). К тому же boost наверняка делает, что-то похожее (создает глобавльный map ссылок на куче).


shared_ptr размещает счётчики не в map'е, а в куче.
Более того, если даже у dll и exe разные менеджеры кучи (т.е. нельзя в одном модуле сделать p=new T() а в другом delete p) — это не мешает.
Дело в том, что счётчик (detail/shared_count.hpp) — это объект с интрузивным удалением. То есть он сам знает, как себя удалять, и обратится именно к той куче, в которой был размещён.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.