如何仅强制提取特定的私有类成员

How to force extraction of only specific private class members?

本文关键字:成员 何仅强 提取      更新时间:2023-10-16

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

例如,如下所示:

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

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

可以这样做吗?

从这里开始,您可以使用标记的条件部分,然后不包括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。

编辑:抱歉,我最初的回答是"包括"而不是"不包括"关于该部分。

我想出了一个有点迂回的替代方案。

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 的 PREDEFINED 下定义DOXYGEN_EXTRACT(或您喜欢的任何标签)。

一些限制/问题:

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