web-dev-qa-db-ja.com

doxygenを使用して列挙値を文書化する

与えられた:

namespace Foo {
    class Foo {
    public:
        /// Foo enum, possible ways to foo
        enum class Foo {
            /// Foo it with an A
            A,
            /// Foo it with a B
            B,
            /// Foo it with a C
            C
        }
    }
}

そして、doxygen -gで作成されたデフォルトのDoxyfileは、次のようになります:

generated documentation

列挙値を文書化するにはどうすればよいですか? ///<などを使用して、メンバーの前後にコメントを入れてみましたが、役に立ちませんでした。これは単にdoxygenのバグでしょうか?ドキュメントの例は機能します。 (列挙型の名前をクリックしても何も表示されません)

32

Doxygen 1.8.2では、次の両方が機能します。

///の使用

/// This is an enum class
enum class fooenum {
    FOO, ///< this is foo
    BAR, ///< this is bar
};

/*! ... */の使用

/*! This is an enum class */
enum class fooenum {
    FOO, /*!< this is foo */
    BAR, /*!< this is bar */
};

Brief DescriptionDetailed Description

doxygen changelog は、enum classがDoxygen 1.8.2でサポートされていることを示しているため、コマンドにいくつかのマイナーな構文の問題があると思われます。コマンドを上記の2つのスニペットと比較してください。

新機能

C++ 11のサポートが追加されました。

strongly typed enums, e.g.:
enum class E
24
Masked Man

私は個人的に長すぎるヘッダーファイルを持つことを嫌うことに注意してください(文書化は少なくとも2または3行の文書を書くことを意味し、1つのWordではないので、私は一般的に短いだけでは十分ではありません)ので、私は。 cppファイル。

そのためには、Doxygenの\ var機能を使用します。

そのため、ヘッダーはむき出しになっています。

namespace Foo {
    class Foo {
    public:
        enum class Foo {
            A,
            B,
            C
        };
    };
}

.cppファイルには次のものがあります。

namespace Foo {

/** \enum Foo::Foo
 * \brief Foo enum, possible ways to foo
 *
 * All the necessary details about this enumeration.
 */

/** \var Foo::A
 * \brief Foo it with an A
 *
 * When you use A... etc.
 */

/** \var Foo::B
 * \brief Foo it with an B
 *
 * When you use B... etc.
 */

/** \var Foo::C
 * \brief Foo it with an C
 *
 * When you use C... etc.
 */

}

そうすれば、頻繁にドキュメントを作成できます。

9
Alexis Wilke

以下のスタイルは私のために働く:

enum class Foo {
  /**Foo it with A*/
  A,
  /**Foo it with B*/
  B
}