C++ 如何强制只提取特定的私有类成员?
我希望Doxygen只强制提取特定的私有类成员。我知道这个选项,但它提取了所有私人成员。我希望能够挑选和选择我想要提取的私人成员 例如,如下所示:C++ 如何强制只提取特定的私有类成员?,c++,doxygen,C++,Doxygen,我希望Doxygen只强制提取特定的私有类成员。我知道这个选项,但它提取了所有私人成员。我希望能够挑选和选择我想要提取的私人成员 例如,如下所示: class Foo { private: /** @forceextract * @brief Something about this function. */ void foo1(); /** @brief Something about this other function. */ void foo2
class Foo {
private:
/** @forceextract
* @brief Something about this function.
*/
void foo1();
/** @brief Something about this other function.
*/
void foo2();
};
虽然foo1的文档是私有的,但是应该提取它,但是foo2应该单独处理
可以这样做吗?从中可以使用带标签的条件节,然后不将该节包含在启用的\u节下:
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添加到启用的_部分,那么它应该尊重未设置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的预定义下定义DOXYGEN_EXTRACT或您喜欢的任何标记
几个限制/问题:
成员在输出中显示为public,而不是private。
您应该记住为下一个成员显式指定访问说明符。
在我的应用程序中,我有成千上万的私人成员,我只想提取其中的一小部分。恐怕在我不希望包含的条件中添加条件是不实际的。您可以在单个条件变量下根据需要将任意多个私人成员分组。如果它们没有像第一次记录的那样以任何特定的顺序排列,那么是的,这将不太实际。另一种方法是不在您不希望记录的成员上包含doxygen样式的文档,您可以使用常规注释并指定HIDE_UNDOC_members=YES,除非这也是一个选项。