====== 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.
*/