всяких ast нод, других объектов через new. Сначала начал городить умные указатели. Потом подумал что можно сделать что-то типо DropScope, который передавать во все объекты при создании. Они регистрируют себя в этом объекте. А после парсинга просто делать scope.drop(), а котором просто всем объектам делается delete. Это нормальный подход? Могут быть какие-то подводные камни? Я так понимаю это принцип овнера. Как в qt. Когда овнер отвечает за удаление
а идея с умными указателями почему отпала?
Туже семантику реализует unique_ptr
Ну просто это не так удобно мне кажется. У меня время жизни объектов получается имеет вполне определенные и понятне границы
так вы один умный указатель заменили другим, самописным
Но да. Только получается много мелких юник принтеров я заменяю на один
Я думаю, здесь нужна арена
Арена аллокатор какой-то? Или что имеется в виду?
Да, если я термин не перепутал. Объекты выделяются в пуле, но деаллокация не сразу их удаляет, а после удаления самого пула. Таким образом не тратится лишнее время на одиночные деаллокации памяти
Обсуждают сегодня