如何显示命名空间中的所有元素?

时间:2012-10-14 13:26:32

标签: c++ namespaces

如何在C ++中显示命名空间内的所有元素?

可以使用Doxygen分隔命名空间并打印它们吗?使用GCC?

我假设我不知道命名空间名称,所以我想打印它们或者我知道一个特定的命名空间名称,我想知道里面是什么。

2 个答案:

答案 0 :(得分:5)

C ++没有反射(例如许多动态语言或Java和.NET),所以在C ++中是不可能的。

Doxygen可以将其数据导出为XML而不是HTML,因此您可以使用XSLT样式表将Doxygen的XML输出转换为您想要的任何格式。

有一个名为GCC-XML的GCC版本,而不是编译输出解析的C ++代码的XML表示,在这里你也可以这样做。

最后但并非最不重要的是,你当然可以为Clang的GCC创建一个插件并在那里进行(GCC例如可以使用来自Mozilla的Dehydra补丁使用Javascript编写的插件)。

我建议查看Doxygen XML输出。

答案 1 :(得分:1)

如果您使用的是Linux,则可以使用nm工具列出生成的二进制文件中的所有符号,并根据需要解析输出:

nm -C some-app