Ответ 1
Из того, что я знаю, в настоящее время нет инструмента, который делает все, о чем вы упоминали, однако есть тот, который помогает в очистке неиспользуемых заголовков include: include-what-you-use
" Включить то, что вы используете" означает следующее: для каждого символа (тип, функция переменная или макрос), которые вы используете в foo.cc, либо foo.cc, либо foo.h должен # включать файл .h, который экспортирует объявление этого символа. Инструмент include-what-you-use - это программа, которая может быть создана с помощью clang, чтобы анализировать #include исходных файлов, чтобы найти включать-что-вы-использовать нарушения, и предложить исправления для них.
Основная цель include-what-you-use - удалить лишние #includes. Он делает это как путем выяснения того, что #includes на самом деле не требуется для этого файла (для файлов .cc и .h), и заменяя #includes forward-declares, когда это возможно.
Можно было бы ожидать, что проверки availalbe не предлагают таких вещей.
Это может быть хорошим временем для предложить запрос функции в анализатор или создать отдельный инструмент с помощью LibTooling аналогичным образом с инструментами, описанными в Clang Tools
Тем временем я предлагаю вам включить флаги компилятора -Wall и -Wextra, что вызовет следующие предупреждения (среди прочего) (см. документы GCC ниже):
- -Wunused-функция
- -Wunused-label
- -Унимое значение
- -Wunused-variable
- -Wunused-параметр
- -Wunused-но-установленный параметр
Если по какой-то причине вы не хотите этого делать, вы можете просто добавить -Wunused, который будет включать только перечисленные выше опции -Wunused, без других флагов, которые -Wall или -Wextra добавляет.
Но для того, чтобы получить предупреждение о неиспользуемом параметре функции, вы должен либо указать -Wextra -Wunused (обратите внимание, что -Wall подразумевает -Wunused), или отдельно укажите параметр -Wunused.
Конечно, это означает, что вы должны вручную выполнить очистку
Если вы хотите быть дополнительным педантичным, вы можете также преобразовать все предупреждения в ошибки, добавив флаг -pedantic-errors
Подробнее читайте Документацию GCC Warnings Options.