【问题标题】:Add section with custom items to class documentation?将带有自定义项目的部分添加到类文档中?
【发布时间】:2015-04-13 08:18:53
【问题描述】:

(C++)类的 Doxygen 文档有多个部分,例如“公共成员函数”和“私有属性”。我想添加一个自定义部分,其中包含不是我班级成员的条目。有办法吗?

具体来说,我的类有 * 方法,如 SetProperty(std::string name, int value),它采用各种属性名称,我想记录属性名称的有效选项。现在我列出了支持属性的私有字段,并将属性名称放在 cmets 中,这有点不理想。


*) 在有人建议只更改代码之前,这个界面是出于我无法控制的原因而存在的,我无法更改它。这个想法是允许松散耦合并在脚本中设置类的属性。

【问题讨论】:

    标签: c++ doxygen


    【解决方案1】:

    Doxygen 支持Member groups 的概念,这正是您正在寻找的。只需像这样将成员括起来:

    struct MyClass
    {
      int nongroup_member;
    
      /*!
        \name MyGroupName
        Group description
        Note that this entire block is optional
      */
      //! @{
      int member_in_group;
      int another_member_in_group;
      //! @}
    };
    

    如果您要在组中记录的成员实际上并不作为成员存在,您应该能够在内部为它们引入“假”声明,并由一个宏控制的 #ifdef ... #endif 块,该宏仅定义为Doxygen 运行。

    【讨论】:

    • 谢谢,成员组工作(但我必须将 \nosubgrouping 添加到类中,以便该组显示在与其他组相同的级别)。但是,假会员对我不起作用。似乎 doxygen 仍然希望该成员在其他地方的代码中声明。
    • @jdm 假成员应该可以工作,至少靠他们自己。您可以在没有组的情况下尝试它们,以确保您的语法等正确吗?
    • 我仔细检查了它,我得到了Warning: documented function `int CP::MyClass::fakeMember' was not declared or defined,但它没有出现在文档中。另见this comment
    • @jdm 嗯,我认为它应该可以工作 :-( 我提供了另一种解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2023-04-02
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多