Информация об изменениях

Сообщение Re[7]: [offtop] aware_ptr? от 03.01.2020 20:54

Изменено 03.01.2020 21:29 rg45

Re[7]: [offtop] aware_ptr?
Здравствуйте, Alexey F, Вы писали:

AF>А что такое aware_ptr и с чем его едят? Поиск выплёвывает только твой старый пост
Автор: rg45
Дата: 19.10.10
с коротким описанием


Да я сам удивляюсь, что не находится ничего. Мне его уже несколько раз приходилось имплементить за мою карьеру. Ну не сам же я его придумал! Полезная штуковина. Это чудо-указатель — мечта всех идиотов — "обнуляется" автоматически, при окончании времени жизни объекта. Концептуально близок к weak_ptr, но с тем отличием, что никак не привязан ни к shared_ptr, ни к какому другому умному указателю. Вообще не накладывает ни каких ограничений ни на область памяти, в которой размещается объект, ни на способ владения. Это запросто может быть объект, расположенный в куче, с владением через любой из умных указателей, подобъект другого объекта (член), или просто локальный объект в скопе функции или блока. Недостаток один — имплементация интрузивная (другой я не придумал).
Re[7]: [offtop] aware_ptr?
Здравствуйте, Alexey F, Вы писали:

AF>А что такое aware_ptr и с чем его едят? Поиск выплёвывает только твой старый пост
Автор: rg45
Дата: 19.10.10
с коротким описанием


Да я сам удивляюсь, что не находится ничего. Мне его уже несколько раз приходилось имплементить за мою карьеру. Ну не сам же я его придумал! Полезная штуковина. Это чудо-указатель — мечта всех идиотов — "обнуляется" автоматически, при окончании времени жизни объекта. Концептуально близок к weak_ptr, но с тем отличием, что никак не привязан ни к shared_ptr, ни к какому другому умному указателю. Вообще не накладывает ни каких ограничений ни на область памяти, в которой размещается объект, ни на способ владения. Это запросто может быть объект, расположенный в куче, с владением через любой из умных указателей, подобъект другого объекта (член), или просто локальный объект в скопе функции или блока. Недостаток один — имплементация интрузивная (другой я не придумал).


P.S. Я пошарил по закоулкам памяти, а ведь действительно, aware_ptr мог быть нашим локальным изобретением. Ведь самую первую имплементацию aware_ptr я с делал еще в те времена, когда сам термин "smart pointer" был еще новым и прогрессивным. Очень может быть, что один из моих коллег просто попутал слова "smart" и "aware". Ну а потом объяснил так, как понимал. Ну а я в свою очередь заимплементил так, как понял его. Впрочем, я не уверен, что все было именно так. Давненько это было, год эдак 98-й, наверное.