Когда я включаю заголовочный файл, я часто задаюсь вопросом, что было добавлено.
Документация не всегда отвечает на эти вопросы и не дает никаких гарантий.
Я мог бы посмотреть на источник, но становится трудно наблюдать за большими заголовочными файлами, которые также включают дерево других заголовков.
Есть ли хорошие программы для такого анализа?
Используйте такой инструмент, как Doxygen. Вы кормите его исходниками своей библиотеки, и она выводит перекрестную ссылку на документацию.
Вы можете использовать -E
(или же /E
; все компиляторы C и C ++ использовали эту опцию, используя именно это имя) опцию компилятора, чтобы получить предварительно обработанный вывод модуля перевода. Это сбрасывает все объявления, видимые компилятором. Кажется, вам нужны только функции и классы, а -E
Вариант также будет писать все объявления. Если вам действительно нужны функции и классы, вы можете использовать библиотеку clang, чтобы получить доступ к абстрактному синтаксическому дереву (AST) и выбросить только эти.
Если вы используете Visual Studio, вариант для этого заключается в использовании помощников кода, таких как MS intellisense, визуальный ассистент или же ReSharper. Они могут предоставить вам все доступные переменные, классы, функции, типы, пространства имен, константы и т. Д. В данном контексте.
Другие IDE также могут предоставлять эту функцию, но я никогда не использовал ее, кроме как в Visual Studio. Кажется, что QtCreator может быть хорошим вариантом, как указано Вот.