Как узнать, присутствует ли функция в файле cpp с помощью cppcheck?
Я хотел выяснить, реализован ли в файле cpp определенная функция.
Например, если () присутствует в файле cpp. Как мне написать правило для этого? Я хочу это бросить исключение, если его нет.
3 ответа
Инструменты статического анализа кода не используются для поиска ошибок компиляции или компоновки.
Если функция или метод 'a` не объявлены и не определены, компилятор или компоновщик сообщит вам - вы получите ошибку.
Если CppCheck не может обнаружить такую проверку, вы можете попробовать CppDepend и его язык запросов кода CQLinq для создания ваших собственных правил.
from file in Files where file.ChildMethods.Where(m=>m.Name=="a").Count()==0 select file
Я разработчик Cppcheck.
Cppcheck имеет "правила" и "аддоны". "Правило" выполняется с помощью "--rule". С "правилом" вы не можете проверить это, насколько я вижу.
С помощью "аддона" вы можете определенно реализовать это. Хорошее начало - циклический просмотр списка областей. Если вы видите область функции для "a()", вы можете увидеть, где находится тело области.
Вы можете прочитать больше об аддонах в руководстве по cppcheck. http://cppcheck.sourceforge.net/manual.pdf
Глава 12