O bom senso diz que os blocos de comentário do Doxygen devem ser colocados nos arquivos de cabeçalho onde estão as classes, estruturas, enums, funções e declarações. Concordo que este é um bom argumento para bibliotecas que devem ser distribuídas sem sua fonte (apenas cabeçalhos e bibliotecas com código-objeto).
MAS ... Eu tenho pensado na abordagem exatamente oposta quando estou desenvolvendo uma biblioteca interna para a empresa (ou como um projeto paralelo para mim) que será usada com seu código-fonte completo. O que proponho é colocar os grandes blocos de comentários nos arquivos de implementação (HPP, INL, CPP, etc) para NÃO bagunçar a interface das classes e funções declaradas no cabeçalho.
Prós:
- Menos confusão nos arquivos de cabeçalho, apenas a categorização das funções pode ser adicionada.
- Os blocos de comentário que são visualizados quando o Intellisense, por exemplo, é usado, não entram em conflito - este é um defeito que observei quando tenho um bloco de comentário para uma função no arquivo .H e tenho sua definição embutida no mesmo arquivo .H mas incluído no arquivo .INL.
Contras:
- (O mais óbvio) Os blocos de comentário não estão nos arquivos de cabeçalho onde as declarações estão.
Então, o que você acha e possivelmente sugere?