使用Doxygen 1.7.4
有时候我会有一个公共成员函数块,它们属于成员组,我觉得自我记录(例如getter / setter),所以我不想写Doxygen每个语法。但是,我可能需要向其中的一个或两个添加类似\note
的内容。此外,我做仍然希望函数声明显示在最终文档中的类的成员列表中。因此,使用\cond
,\endcond
将无效。我注意到如果记录了所有父元素并且Doxygen在成员组中遇到了未记录的函数,它将重复它在该组中遇到的第一个文档,即使该文档是针对不同名称的函数,如下所示:
/** @name Group1
* @{
*/
void setA( int i );
int getA( void );
/// @note This note unexpectedly repeated for all functions in this group
void setB( int i );
int getB( void );
void setC( int i );
int getC( void );
//@}
对于阅读代码和文档的任何人来说,显而易见的是,该注释应仅适用于setB()
。
如果删除周围的成员组,这个特殊问题就会消失。然而,这会破坏文档的目的,即这些函数在某种程度上属于一起,然后Doxygen抱怨(警告)函数没有记录。我尝试添加空的特殊注释块并清空\brief
和\note
命令,但都无济于事。
在记录成员组中的重载函数时,我也会遇到这种现象。如果我的重载函数使用不同数量的参数和不同的参数名称,我将单独记录该函数。但是,有时两个函数只会因参数类型而不同。在这种情况下,我的解决方法是使用\overload
命令。但是,我宁愿不必这样做,并且此解决方法不适用于(语义上)不同名称的函数。
那么,这个重复问题是否有解决办法?
答案 0 :(得分:4)
是。 Doxygen在Doxyfile中提供DISTRIBUTE_GROUP_DOC
选项。默认设置为YES
,但将其更改为NO
可解决此问题。