1

C++ で名前空間内のすべての要素を表示するにはどうすればよいですか?

Doxygen を使用して名前空間を分離し、それらをすべて印刷することは可能ですか? GCC を使用していますか?

私は名前空間名がわからないので、それらをすべて出力したい、または特定の名前空間名を知っていて、その内容を知りたいと思っています。

4

2 に答える 2

5

C++ にはリフレクションがないため (たとえば、多くの動的言語や Java および .NET など)、C++ 内からはリフレクションを行うことができません。

Doxygen はそのデータを HTML ではなく XML にエクスポートできるため、XSLT スタイルシートを使用して、Doxygen の XML 出力を任意の形式に変換できます。

GCC-XML と呼ばれる GCC のバージョンがあり、コンパイルする代わりに、解析された C++ コードの XML 表現を出力します。ここでも同じことができます。

最後になりましたが、もちろん、Clang の GCC 用のプラグインを作成して、そこで実行することもできます (たとえば、GCC は、Mozilla の Dehydra パッチを使用して Javascript で記述されたプラグインを使用できます)。

Doxygen XML 出力を見ることをお勧めします。

于 2012-10-14T13:35:13.287 に答える
2

Linux を使用している場合は、ツールを使用して生成されたバイナリ ファイルからすべてのシンボルを一覧表示し、必要に応じてnm出力を解析できます。

nm -C some-app
于 2012-10-14T13:39:48.427 に答える