2010-03-23 12 views
13

Toutes les classes de ma bibliothèque sont définies dans un espace de noms. Lorsque je crée une page principale pour Doxygen, je dois explicitement utiliser cet espace de noms dans les commentaires pour que Doxygen génère des liens. Je voudrais utiliser quelque chose comme "using namespace" pour tout le bloc de commentaire."using namespace" pour les commentaires Doxygen

Un exemple:

/** 
* \mainpage My Library 
* 
* Use MyLibraryNamespace::MyClass to ... 
*/ 

Ici Doxygen génère automatiquement un lien vers la documentation de MyLibraryNamespace :: MyClass.

/** 
* \mainpage My Library 
* 
* Use MyClass to ... 
*/ 

Ici Doxygen ne génère pas un lien vers la documentation de MyLibraryNamespace :: MyClass (comme il pourrait y avoir plusieurs définitions de MaClasse dans différents espaces de noms, je suppose). Pour faciliter la lecture, je voudrais omettre le préfixe d'espace de noms dans le commentaire. Est-ce possible sans devoir taper \ref MyLibraryNamespace::MyClass "MyClass" à chaque fois?

Répondre

14

Vous pouvez faire ce travail pour un espace de noms en mettant votre commentaire à l'intérieur de l'espace de noms. Cela me dérange considérablement car nous avons plusieurs espaces de noms imbriqués et je déteste avoir à les utiliser dans les commentaires Doxygen.

namespace MyLibraryNamespace { 
/** 
* \mainpage My Library 
* 
* Use MyClass to ... 
*/ 
}; 

2016 Mise à jour de Markdown Perspective

J'utilise Doxygen pour C# docs pour Realm (oui Doxygen gère le format XML typique C# commentaire aussi!). La page principale Markdown utilise le @ref de se référer à des classes d'espaces de noms:

The main classes you will use are: 

- [Realm](@ref Realms.Realm) 
- [RealmObject](@ref Realms.RealmObject) 
- [RealmList](@ref Realms.RealmList) 
- [Transaction](@ref Realms.Transaction) 

Vous pouvez voir une version rendue online here

2

Vous pouvez utiliser alias comme ceci:

ALIASES += refmylib{1}="@ref MyLibraryNamespace::\1 \"\1\""

C'est un exemple d'utilisation:

/** * \mainpage My Library * * Use @refmylib{MyClass} to ... */

Et ci-dessus seront traités par doxygen comme ceci:

/** * \mainpage My Library * * Use @ref MyLibraryNamespace::MyClass "MyClass" to ... */

Questions connexes