如何强制只提取特定的私人班级成员?

时间:2013-11-08 06:31:23

标签: c++ doxygen

我希望Doxygen强制只提取特定的私有类成员。我知道EXTRACT_PRIVATE选项,但它提取所有私有成员。我希望能够选择我想要提取的私人成员。

例如以下内容:

class Foo {
private:
  /** @forceextract
    * @brief Something about this function.
    */
  void foo1();

  /** @brief Something about this other function.
    */
  void foo2();
};

foo1()的文档虽然是私有的,但应该被提取,但foo2()应该保持不变。

是否可以这样做?

2 个答案:

答案 0 :(得分:0)

here获取,您可以使用带标签的条件部分,然后包含ENABLED_SECTIONS下的部分:

class Foo {
private:
  /** @brief Blah blah blah */
  void foo1();

  /// @cond COND1

  /** @brief This will be hidden! */
  void foo2();
  /** @brief So will this */
  void foo3();
  /** @brief This should be hidden too */
  int fooInt;

  /// @endcond
};

您无需为要包含的所有字段添加条件并将所有这些条件添加到已启用的部分列表中,您只需向想要包含的字段添加条件即可。在此示例中,如果未将COND1添加到ENABLED_SECTIONS,则应该遵循未设置COND1的事实,因此在文档中不会包含“foo2()”。确保你仍然设置了EXTRACT_PRIVATE。

编辑:对不起,我原来的回答是关于该部分说“包括”而不是“不包括”。

答案 1 :(得分:0)

我想出了一个有点迂回的选择。

class Foo {
#ifdef DOXYGEN_EXTRACT
public:
#else
private:
#endif
  /** @forceextract
    * @brief Something about this function.
    */
  void foo1();

private:
  /** @brief Something about this other function.
    */
  void foo2();
};

然后在Doxyfile中的DOXYGEN_EXTRACT下定义PREDEFINED(或您喜欢的任何标记)。

一些限制/问题:

  • 成员在输出中显示为public,而不是private
  • 您应该记住明确指定下一个成员的访问说明符。