C ++ неиспользуемые заголовки - PullRequest
0 голосов
/ 21 февраля 2019

Я хотел бы удалить некоторые неиспользуемые заголовки из большой кодовой базы.Я знаю, что есть некоторые инструменты с открытым исходным кодом, но количество ложных срабатываний слишком велико.Идея заключалась в том, чтобы запустить скрипт для каждого файла.Следовательно, удалить include, попытаться скомпилировать, если компиляция переходит на следующую строку (с удалением include), в противном случае оставить include и перейти на следующую строку.

Есть ли какие-либо проблемы, связанные с этой идеей, если посмотреть в длинном-срок?Или есть более простой вариант?

1 Ответ

0 голосов
/ 21 февраля 2019

Есть ли проблемы, связанные с этой идеей

Да.Файл может успешно скомпилироваться, даже если в нем отсутствуют включаемые файлы, поэтому он может иметь ложные срабатывания и может удалить фактически используемые заголовки.

Анализировать, какие заголовки следует включить, довольно сложно, икоторые не нужны, как вручную, так и автоматически.Инструменты были сделаны для автоматической проверки.Даже если «количество ложных срабатываний слишком велико », это все-таки (по моему опыту) небольшая доля всех включенных заголовков, поэтому проверить результаты такого инструмента гораздо меньше, чем сравнивать включения каждого из них.файл ко всему содержимому этих файлов.Даже сценарий, который вы предлагаете, может быть лучше, чем ничего, если вы не удаляете включения без проверки вручную.

Помогает ручная проверка, чтобы сделать файлы как можно меньше.Как побочный эффект, это также делает инкрементную компиляцию намного быстрее (но форма компиляции царапается медленнее).

...