shared_ptr

May. 2nd, 2014 10:28 pm
sab123: (face)
[personal profile] sab123
Попытался использовать shared_ptr из C++11. Ну что я могу сказать, люди, создавшие напрочь бесполезный auto_ptr, сумели создать почти столь же бесполезный счетчик ссылок. Фундаментальная проблема в том, что они пытаются делать счетчик ссылок для совершенно любых структур, и потому хранят сам счетчик не прямо в структуре, а отдельно. При присвоении указателя в shared_ptr в первый раз оно создает отдельную структуру со счетчиком. И если потом присваивать эти shared_ptr друг к другу, то оно работает нормально. Но если взять и опять положить изначальный указатель в другой shared_ptr, то образуется два отдельных счетчика для одной структуры, и все погибает. И совершить такую ошибку очень легко. В-общем, этой штукой пользоваться нельзя. Мой темплейт Autoptr - гораздо, гораздо лучше.

P.S. Проблема разъяснилась. Надо просто никогда не конструировать такие объекты напрямую, а использовать make_shared. Ну, или статические методы, возвращающие прямо ссылку. И тогда указатели не вылазят наружу.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2026

S M T W T F S
     12 3
45 6 7 8 9 10
11 12 13 14 151617
1819202122 23 24
25 262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 27th, 2026 07:05 pm
Powered by Dreamwidth Studios