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