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 Doxyfile par défaut fait avec doxygen -g
, J'ai compris:
Comment puis-je obtenir les valeurs de l'énumération documentées? J'ai essayé de mettre le commentaire avant/après le membre, en utilisant ///<
, etc., en vain. Serait-ce juste un bug dans doxygen? Les exemples dans la documentation fonctionnent. (Cliquer sur le nom de l'énumération ne m'amène nulle part)
Avec Doxygen 1.8.2, les deux travaux suivants me conviennent:
Utilisation de ///
/// This is an enum class
enum class fooenum {
FOO, ///< this is foo
BAR, ///< this is bar
};
Utilisation de /*! ... */
/*! This is an enum class */
enum class fooenum {
FOO, /*!< this is foo */
BAR, /*!< this is bar */
};
Le changelog doxygen dit que enum class
est pris en charge 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 s'il vous plaît comparer vos commandes avec les deux extraits ci-dessus?
Nouvelles fonctionnalités
Ajout du support pour C++ 11:
strongly typed enums, e.g.: enum class E
Notez que je déteste personnellement 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'ai généralement pas assez de mémoire), 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 nu:
namespace Foo {
class Foo {
public:
enum class Foo {
A,
B,
C
};
};
}
Et le fichier .cpp a:
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 longuement ce qui m'arrive souvent.
Le style ci-dessous fonctionne pour moi:
enum class Foo {
/**Foo it with A*/
A,
/**Foo it with B*/
B
}