Doxygen可以包含成员组中的函数但不记录它吗?

时间:2011-10-17 20:22:33

标签: oop doxygen documentation-generation

使用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命令。但是,我宁愿不必这样做,并且此解决方法不适用于(语义上)不同名称的函数。

那么,这个重复问题是否有解决办法?

1 个答案:

答案 0 :(得分:4)

是。 Doxygen在Doxyfile中提供DISTRIBUTE_GROUP_DOC选项。默认设置为YES,但将其更改为NO可解决此问题。