【问题标题】:Can Doxygen include a function in a member group but not document it?Doxygen 可以在成员组中包含一个函数但不记录它吗?
【发布时间】:2011-12-09 14:11:29
【问题描述】:

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

那么,这个重复问题有什么解决方法吗?

【问题讨论】:

    标签: oop doxygen documentation-generation


    【解决方案1】:

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

    【讨论】:

    • 不敢相信我错过了。 :-(
    猜你喜欢
    • 2012-10-18
    • 2010-10-17
    • 2015-05-17
    • 1970-01-01
    • 2013-06-04
    • 2020-10-26
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多