1

ヘッダーファイルをインクルードすると、何が取り込まれたのかよく疑問に思います。

  • 現在、どのような機能を利用できますか?
  • インスタンス化できるクラスとその機能は何ですか?
  • 名前空間にラップされているものはありますか?
  • グローバル名前空間に何かありますか?

ドキュメントは必ずしもこれらの質問に答えたり、保証を提供したりするわけではありません。

ソースを見ることができましたが、他のヘッダーのツリーも含む大きなヘッダーファイルを観察するのは難しくなります。
この種の分析を行うための優れたプログラムはありますか?

4

3 に答える 3

5

Use a tool like doxygen. You feed it your library's sources and it outputs cross-referenced documentation.

于 2012-11-22T08:39:44.463 に答える
2

コンパイラーの-E(または/E;これまでこのオプションを使用していたすべてのCおよびC ++コンパイラーは正確にこの名前を使用)オプションを使用して、変換単位の前処理された出力を取得できます。これにより、コンパイラーによって認識されたすべての宣言がダンプされます。-Eオプションがすべての宣言を書き込む間、あなたは関数とクラスだけを求めているようです。関数とクラスだけが本当に必要な場合は、clangライブラリを使用して抽象構文木(AST)を取得し、これらだけをダンプすることができます。

于 2012-11-22T06:54:19.290 に答える
0

Visual Studioを使用している場合、このオプションは、MSインテリセンス、ホールトマトビジュアルアシスト、リシャーパーなどコードヘルパーを使用することです。これらは、特定のコンテキストでアクセス可能なすべての変数、クラス、関数、型、名前空間、定数などを提供する場合があります。

他のIDEもこの機能を提供している可能性がありますが、私はVisualStudio以外でこれを使用したことはありません。ここで指摘されているように、QtCreatorは良いオプションのようです。

于 2012-11-22T09:56:05.600 に答える