1

.hファイルで宣言されていない.cppファイルで定義されたメンバー関数を持つコードがあります。私が期待することに反して、それは問題なくコンパイルされます。

Doxygenを使用してドキュメントを生成したいのですが、ヘッダーファイルで宣言されていないメンバー関数の前に追加したコメントがDoxygenによって認識されていないようです。

ヘッダーファイルで関数を定義する以外に、この問題の回避策はありますか?

4

1 に答える 1

0

.h ファイルで宣言されていない .cpp ファイルで定義されたメンバー関数を含むコードを取得しました。予想に反して、問題なくコンパイルできます。

これのことですか?

// Foo.h
class Foo
{
  void bar ();
  // no method "meh".
};

// Foo.cpp
int Foo::meh (const std::string& message)
{
   // ...
};

それはコンパイルされるべきではないからです。

これを意味する場合:

// Foo.h
void bar ();
// no function "meh".

// Foo.cpp
int meh (const std::string& message)
{
   // ...
}

それで問題ありません (フリー関数はヘッダー ファイルでの宣言を必要としません)。


Doxygen でドキュメントを生成したいのですが、ヘッダー ファイルで宣言されていないメンバー関数の前に追加したコメントが、Doxygen によって認識されないようです。

これは、Doxygen の構成によって異なります。ソース ファイルとヘッダー ファイルの両方を含めるように INPUT_PATTERNS 設定を設定してください。また、独立した関数コマンドが何らかのシンボルを明示的に参照していることを確認してください (たとえば、@fn mehコマンドを使用して関数を文書化しmehます)。

于 2012-08-30T16:31:03.890 に答える