当我包含一个头文件时,我经常想知道拉入了什么。
- 我现在可以使用哪些功能?
- 我可以实例化哪些类,它们的功能是什么?
- 命名空间中是否包含任何内容?
- 全局命名空间中有任何东西吗?
文档并不总是回答这些问题,也不提供任何保证。
我可以查看源代码,但很难观察还包含其他头文件树的大型头文件。
有没有什么好的程序可以进行这种分析?
当我包含一个头文件时,我经常想知道拉入了什么。
文档并不总是回答这些问题,也不提供任何保证。
我可以查看源代码,但很难观察还包含其他头文件树的大型头文件。
有没有什么好的程序可以进行这种分析?
使用像doxygen这样的工具。你向它提供你图书馆的资源,它会输出交叉引用的文档。
您可以使用编译器的-E
(或/E
; 所有 C 和 C++ 编译器使用此选项完全使用此名称) 选项来获取翻译单元的预处理输出。这会转储编译器看到的所有声明。看来,您只关注函数和类,而该-E
选项还将编写所有声明。如果你真的只想要函数和类,你可以使用 clang 库来获取抽象语法树 (AST) 并只转储这些。
如果您使用的是 Visual Studio,则可以选择使用代码助手,例如 MS intellisense、wholetomato 视觉辅助或resharper。这些可以在给定的上下文中为您提供所有可访问的变量、类、函数、类型、命名空间、常量等。
其他 IDE 也可能提供此功能,但我从未在 Visual Studio 中使用过它。正如这里所指出的,QtCreator 似乎是一个不错的选择。