программа, которая сканирует заголовочный файл и сообщает об используемом коде?

Когда я включаю заголовочный файл, я часто задаюсь вопросом, что было добавлено.

  • Какие функции теперь доступны для меня?
  • какие классы я могу создать и каковы их функции?
  • Есть что-нибудь, завернутое в пространство имен?
  • Есть что-нибудь в глобальном пространстве имен?

Документация не всегда отвечает на эти вопросы и не дает никаких гарантий.

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

1

Решение

Используйте такой инструмент, как Doxygen. Вы кормите его исходниками своей библиотеки, и она выводит перекрестную ссылку на документацию.

5

Другие решения

Вы можете использовать -E (или же /E; все компиляторы C и C ++ использовали эту опцию, используя именно это имя) опцию компилятора, чтобы получить предварительно обработанный вывод модуля перевода. Это сбрасывает все объявления, видимые компилятором. Кажется, вам нужны только функции и классы, а -E Вариант также будет писать все объявления. Если вам действительно нужны функции и классы, вы можете использовать библиотеку clang, чтобы получить доступ к абстрактному синтаксическому дереву (AST) и выбросить только эти.

2

Если вы используете Visual Studio, вариант для этого заключается в использовании помощников кода, таких как MS intellisense, визуальный ассистент или же ReSharper. Они могут предоставить вам все доступные переменные, классы, функции, типы, пространства имен, константы и т. Д. В данном контексте.

Другие IDE также могут предоставлять эту функцию, но я никогда не использовал ее, кроме как в Visual Studio. Кажется, что QtCreator может быть хорошим вариантом, как указано Вот.

0
По вопросам рекламы [email protected]