Вопрос или проблема
Существует ли какой-нибудь браузер или анализатор исходного кода C++, который предоставляет возможность выполнения ‘запросов к исходному коду’? Например, я хочу найти строки в исходных файлах такого типа.
- Найти объявления функций C++, которые имеют более 5 параметров
- Найти виртуальные функции C++, реализация которых написана в заголовочных файлах
Кажется, существует способ, как Exploring the Visual C++ Browse Database
, но его документация в основном недоступна.
Я изучал Clang, чтобы разработать это самостоятельно, но это требует слишком многого, прежде чем приступить к разработке.
Я думаю, CppDepend может быть подходящим инструментом для вас.
Хотя я лично не работал с CppDepend, я использовал два аналогичных продукта той же компании, а именно NDepend и JArchitect.
Я уверен, что это решит вашу первую проблему, так как у NDepend и JArchitect есть встроенное предупреждение для этого.
Я также уверен, что это решит ваш второй запрос, так как он оснащен мощным языком запросов, который никогда меня не подводил.
Также, поддержка отличная. Отправьте электронное письмо, и Роксанна ответит быстро.
Тем не менее, это не совсем дешево. Лицензия стоит 899 долларов США и ~720 долларов США за продление. Учитывая, что C++ довольно ужасный язык (личное мнение), цена приемлемая, IMHO.
.
Ответ или решение
Анализатор исходного кода C++ с функцией запросов: Решение вашей задачи
Вопрос об анализаторах кода C++, предоставляющих возможность выполнения сложных запросов, очень актуален для разработчиков, работающих с обширными кодовыми базами. Приведенные вами примеры — поиск деклараций функций с более чем пятью параметрами и обнаружение реализаций виртуальных функций в заголовочных файлах — требуют наличия мощного инструмента, способного глубоко анализировать и интерпретировать ваш исходный код.
Одним из самых подходящих решений может стать CppDepend. Этот инструмент предоставляет расширенные возможности анализа кода и предлагает мощный язык запросов, который позволяет находить специфические конструкции в коде. Включая:
-
Поиск сложных конструкций: CppDepend позволяет создавать запросы для анализа структуры кода, такие как поиск функций с определенным числом параметров или идентификация места реализации виртуальных функций. Вы сможете быстро находить все функции, соответствующие заданным критериям, что значительно упрощает процесс ревизии кода.
-
Настраиваемые метрики и визуализация: Интерфейс CppDepend предоставляет не только текстовые запросы, но и мощные инструменты визуализации, что упрощает анализ и понимание структуры проекта.
-
Интеграция и поддержка: CppDepend легко интегрируется с существующими инструментами и CI/CD пайплайнами, что делает его гибким решением для командной разработки. Кроме того, компания предоставляет качественную поддержку, что может быть полезно при внедрении нового инструмента в рабочие процессы.
Однако следует учитывать, что стоимость лицензии может стать значительным фактором при принятии решения. Цена лицензии составляет 899 долларов США, а стоимость продления — порядка 720 долларов. Тем не менее, учитывая уровень функциональности и возможностей, которые предоставляет данный инструмент, вложение может оказаться оправданным.
Если вы считаете, что самостоятельная разработка инструмента на базе Clang потребует слишком много времени и ресурсов, использование готовых решений, таких как CppDepend, может значительно сэкономить ваши усилия и обеспечить необходимую функциональность для сложного анализа кода C++.
Рассмотрите все преимущества и недостатки, чтобы выбрать наиболее подходящее решение для вашей команды и проекта. Вложение в такой инструмент может стать шагом к повышению качества и эффективности вашей разработки.