2

以下を含むヘッダーファイルがあります。

class ClassName {
...

////////////////////////////////////////////////////////////////////////////////////////////////////
/// \fn boost::function<int(void *, char *)> ClassName::getFnPtr();
///
/// \brief ...
///
/// \author ...
/// \date ...
///
/// \return A boost function object ...
////////////////////////////////////////////////////////////////////////////////////////////////////

boost::function<int(void *, char *)> getFnPtr();

...
};

Doxygenを実行するgetFnPtr()と、「パブリックメンバー関数」ではなく「パブリック属性」で報告されます。誰かが私がDoxygenにこれを正しい場所に置くのを手伝ってくれる?

私はDoxygenを初めて使用しますが、Javadocに精通しています。DoxygenGUI1.8.1を使用しています。

編集:Doxygenは、ブースト関数オブジェクトを含むテンプレート化された戻り型を窒息させていると思います。この投稿(Doxygenはテンプレート化されたリターンタイプの解析に失敗します)は、Doxygenが最新のC++の変更を処理しないことを示しています。ブースト関数オブジェクトの戻り型のサポートを開始するC++のバージョンはどれですか?ブースト関数オブジェクトの戻り型に使用されているDoxygenの他の例を誰かに教えてもらえますか?

4

2 に答える 2

2

typedefを使用してみてください。これらの線に沿った何か:

typedef boost::function<int(void *, char *)> myfunc_t;
myfunc_t getFnPtr();
于 2012-06-01T18:18:05.657 に答える
1

問題は、doxygenには、関数と関数ポインター型の変数を区別するためのいくつかの単純なヒューリスティックがあることです。この場合、戻り型のテンプレート引数が間違った決定を引き起こしたものです。

これは次のリリース(> 1.8.1)で修正しますが、それまでの間、nmが提案するtypedefで回避策を使用できます。関連するバグレポートはhttps://bugzilla.gnome.org/show_bug.cgi? id = 677315

于 2012-06-02T09:19:28.210 に答える