Documenter les valeurs enum avec doxygen

étant donné:

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

et le fichier doxyfile par défaut fait avec doxygen -g, j'obtiens ceci:

generated documentation

Comment puis-je obtenir les valeurs d'enum? J'ai essayé de mettre le commentaire avant/après le membre, en utilisant ///<, etc, en vain. C'est peut-être un insecte dans le doxygen? Les exemples dans le docs fonctionnent. (En cliquant sur le nom de l'enum ne m'apporte n'importe où)

29
demandé sur Masked Man 2012-12-07 00:43:51

3 réponses

Avec Doxygen 1.8.2, les deux suivantes de travail pour moi:

en utilisant ///

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

en utilisant /*! ... */

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

Brief DescriptionDetailed Description

doxygen changelog dit que enum class est supporté dans Doxygen 1.8.2, donc je soupçonne qu'il peut y avoir un problème de syntaxe mineur dans vos commandes. Pourriez-vous comparer vos commandes, avec les deux extraits?

Nouvelles fonctionnalités

ajout du support pour C++11:

strongly typed enums, e.g.:
enum class E
17
répondu Masked Man 2012-12-07 04:07:12

notez que personnellement je déteste avoir des fichiers d'en-tête qui vont en longueur (parce que documenter signifie écrire au moins 2 ou 3 lignes de documentations, pas un mot donc je n'en ai généralement pas assez avec le brief) donc je préfère documenter dans le .fichier cpp.

pour ce faire, vous utilisez la fonction \var de Doxygen.

Donc l'en-tête est livré nu:

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

Et la .fichier 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.
 */

}

de cette façon, je peux vraiment documenter en détail ce qui arrive souvent pour moi.

6
répondu Alexis Wilke 2014-08-11 04:20:27

Le soufflet de style qui fonctionne pour moi:

enum class Foo {
  /**Foo it with A*/
  A,
  /**Foo it with B*/
  B
}
4
répondu Ramon J Romero y Vigil 2015-04-01 15:19:12