2011-01-24 44 views
3

ファイルにクラスを入れても変更できませんが、doxygenで文書化する必要があります。どのような方法が最適ですか?実際の.hまたは.cppファイルで文書化するのが最善であることはわかっていますが、この特定のインスタンスでは、これは不可能です。Doxygen C++クラス演算子の文書化

私はいくつかのメンバーを文書化する方法を考え出しましたが、信頼できる方法でオペレーターを文書化することはできません。私に例を挙げてみましょう。ドキュメントの

/// @fn Foo::Bar 
/// @brief Some info about the constructor 
/// @return Some stuff about what bar returns 

:doxygenには、私は次のことを入れている、て見えますことを他のいくつかのファイルで

class Foo 
{ 
public: 
    int Bar(); 
    bool operator!() const; 
}; 

:ここでは例のクラスでは、問題とうまく働いたものをもたらしているメンバーでありますコンストラクタは動作しますが、これはそうではない:

/// @fn Foo::operator! 
/// @brief Some info about the operator 
/// @return Some stuff about what the operator! returns 

どちらも行います。

/// @fn operator! 
/// @memberof Foo 
/// @brief Some info about the operator 
/// @return Some stuff about what the operator! returns 

また、%と%でさまざまな部分をエスケープしようとしました。したがって、 "/// @fn%operator!"、 "/// @fn operator%!"のように見えます。または "/// @ fn演算子!"これが助けになったのは何も好きではありません。

オペレーターに関する情報が表示されることはありません。数回、doxygenのコメントにオペレータの独特の価値を入れて、それをドキンゲンの出力でグロッピングしてみましたが、私は空になりました。私は間違って何をしていますか?

答えて

6

あなたはdoxygenの出力を見れば、

/// @fn Foo::operator!() const 
/// @brief Some info about the operator 
/// @return Some stuff about what the operator! returns 

にあなたのドキュメントを変更された場合に警告

/path/to/Documentation: warning: no matching class member found for 
    Foo::operator!() 
Possible candidates: 
    bool Foo::operator!() const 

があるはずは@fn識別子に追加追加() constに注意してください。

+0

この構文を使用すると効果的でした! – Sqeaky

+0

また、このファイルには文書化されていない1200件の項目があるので、私はdoxygen出力で警告に気づいていませんでした。完全なAPI定義がそこにあります。 – Sqeaky

+0

文書化されていない項目の警告をオフにします。上記のような警告は、別の種類のエラーであるため、引き続き取得する必要があります。 –