Table of Contents
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. */