41

与えられた:

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
        }
    }
}

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

生成されたドキュメント

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

4

3 に答える 3

38

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 */
};

簡単な説明 詳細な説明

doxygenの変更ログによるとenum class、これは Doxygen 1.8.2 でサポートされているため、コマンドに小さな構文の問題がある可能性があります。コマンドを上記の 2 つのスニペットと比較していただけますか?

新機能

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

strongly typed enums, e.g.:
enum class E
于 2012-12-07T03:09:42.323 に答える
12

私は個人的には長すぎるヘッダファイルを持ちたくないことに注意してください (文書化とは、1 語ではなく、少なくとも 2 行または 3 行の文書を書くことを意味するため、通常、概要では十分ではありません) . cpp ファイル。

\varこれを行うには、Doxygenの機能を使用します。

したがって、ヘッダーはむき出しになります。

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 a B
 *
 * When you use B... etc.
 */

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

}

そうすれば、よくあることですが、実際に詳細に記録することができます。

于 2014-08-11T04:20:27.633 に答える
7

以下のスタイルは私のために働きます:

enum class Foo {
  /**Foo it with A*/
  A,
  /**Foo it with B*/
  B
}
于 2012-12-07T03:38:54.743 に答える