2009-06-10 5 views
1

Je dispose d'un fichier .cpp et ai constaté que Doxygen est incapable de documenter une fonction qui contient le format suivant:Impossible de générer de la documentation pour la définition de la fonction suivie de quelques #defines macro

//! 
//! \brief Test 
//!  and perform operations on those points. 
//! 
void CTest::TestTri() 
EH_Start("CTest::TestTri") 
{ 
} 
EH_Stop 

Le EH_Start et EH_Stop sont un mécanisme de gestion des exceptions et causant des problèmes.

Comment pouvons-nous les exclure?

Répondre

4

Essayez d'utiliser un format doxygen plus explicite - le suivant indique Doxygen exactement quelle fonction vous souhaitez documenter, il ne doit pas comprendre votre code pour ce qu'il faut attacher la documentation à:

/// \fn void CTest::TestTri() 
/// \brief Test and perform operations on those points 
EH_STart("CTest::TestTri") {} EH_Stop 
+0

Je ne pense pas que la directive fn fonctionnera si Doxygen ne parvient pas à analyser cette fonction à un moment donné dans la base de code. Comme la directive 'class', elle a pour but de vous permettre de déplacer la documentation. Il n'est pas destiné à vous permettre d'ajouter un document de fonction arbitraire pour des fonctions inexistantes. –

1
en supposant

EH_Start et EH_Stop sont définit, vous pouvez avoir doxgen développer ces macros lorsqu'il traite le code

EXPAND_AS_DEFINED = EH_Start EH_Stop 

Nous avons un certain nombre de macros pour la fonction et les déclarations de classe. Sans EXPAND_AS_DEFINED, Doxygen ne génère pas la documentation correcte

Par exemple:

/* C++ Code */ 
#define STANDARD_CONSTRUCTORS_HEADER(iCLASS) \ 
    public: iCLASS(); \ 
    public: virtual ~iCLASS(); \ 
    private: iCLASS(const iCLASS & iCopy); \ 
    private: iCLASS& operator=(const iCLASS &); 

class Foo { 
    STANDARD_CONSTRUCTORS_HEADER(Foo) 
} 

/* Doxyfile */ 
EXPAND_AS_DEFINED = STANDARD_CONSTRUCTORS_HEADER 

Sans EXPAND_AS_DEFINED, vous ne serez pas les constructeurs de Foo dans la documentation.

Questions connexes