Documentação DOxygen


O objetivo dessa parte é padronizar os comentários utilizando tags do DOxygen (http://www.stack.nl/~dimitri/doxygen), a fim de documentar o código de maneira padronizada e automática. O estilo adotado será o Qt (http://www.stack.nl/~dimitri/doxygen/docblocks.html) sem os *'s intermediários.
Exemplo:

//!  Brief description. 
/*!
  A more elaborate description.
 
  \tags
*/

Algumas regras:

  • toda documentação deve ser escrita imediatamente antes das definições dos tipos, evitando assim o uso de tags estruturais (\class, \struct, \enum, \def, etc). Para maiores detalhes ver (http://www.stack.nl/~dimitri/doxygen/docblocks.html).
  • toda documentação deve ter no mínimo a descrição breve. A documentação detalhada e uso de tags, em alguns casos, não é necessária.
    Exemplo:
...
  //!  Empty contructor 
  TePolygon(void);
...

Arquivo

  • Devem seguir o padrão abaixo e ter no mínimo as tags \file, \brief e \author:
/*! 
  \file   file name
  \brief  brief description about the file.
          Brief description continued.
 
   More detailed description.
 
  \author
  \version
  \sa
*/

Classe e Estrutura

Classe e Estrutura

  • No caso de classes e estruturas é obrigatório colocar as descrições breve e detalhada. A tag \sa é opcional.
    Exemplo:
//!  A brief description of class or struct. 
/*!
  A more elaborate description of class or struct.
 
  \author (?)
  \sa  other definitions related to the class or struct  
*/

Método

  • Os métodos devem conter no mínimo uma descrição breve, a descrição de todos os seus parâmetros (tag \param) e do seu valor de retorno (tag \return). A descrição detalhada é opcional.
//!  A brief description. 
/*!
  A more elaborate description of class or struct.
 
  \param  name description
  \return description
*/

Membro

  • A descrição breve ou detalhada do membro deve vir acima de sua definição.
//! Brief description 
int firstMember_;    
 
//! Brief description 
int secondMember_;   
 
//! Brief description 
/*!
  Detailed description 
*/
int thirdMember_;    

Enumeração

  • A descrição breve do tipo e de seus valores são obrigatórias. A descrição detalhada é opcional.
    Exemplo:
//! Brief description about enum
/*!
  A more elaborate description.
 
  \sa ...
*/
enum TEnum 
{ 
   TVal1, //!< brief description about enum value TVal1.  
   TVal2, //!< brief description about enum value TVal2.   
   TVal3  //!< brief description about enum value TVal3.   
} 

Macro, Namespace, Constante

  • A descrição breve é obrigatória e a descrição detalhada é opcional.
    Exemplo:
//!  A brief description. 
/*!
     A more elaborate description.
*/

Navigation