Есть много сгенерированного кода c++ без использования оператора delete. Нужна утилита для автоматического исправления этого, которая бы записывала delete в нужные места.
Не надо советовать всякие "умные указатели" и "сборщики мусора" и говорить типа: "Утилита для исправления программы = программист".
В общем случае подобная утилита невозможна.
Преимущество (одновременно и недостаток) языков с ручным управлением памятью в том-то и состоит, что выделенная вручную память освобождается не в момент, который может быть вычислен заранее, а при помощи логики программиста. При этом такой подход при вдумчивом и аккуратном программировании может быть эффективнее различных автоматических или полуавтоматических систем управления памятью.
Если бы можно было автоматически вычислить тот самый момент, когда память можно освобождать, не было бы нужды в delete: компилятор мог бы сам вставить delete в нужном месте.
Язык C++ пошёл фактически по пути отказа от ручного управления памятью: идиоматическим считается полуавтоматическое освобождение памяти при помощи подсчёта ссылок. (Да-да, тот самый shared_ptr.) Вы можете попробовать таки настроить ваш генератор вручную, чтобы он выдавал shared_ptr вместо нативных указателей. Но того самого «правильного» места освобождения памяти автоматически никто за вас не найдёт.
Поэтому те альтернативы, которые вы перечислили (умные указатели и «программист») — по существу единственные доступные. Сожалею об этом.
Не знаю, может, вам эта статья поможет. Сразу только не бейте, сам таким способом не пользовался.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости