例如,我有以下类:
class A {
public:
void methodOne();
}
class B : private A {
public:
/** Brief description.
*/
using A::methodOne;
}
我还没有找到强制 doxygen 获取文档 block 的方法。
作为约束,我有许多其他 doxygen 记录的私有(private)成员(也来自其他类),我不希望 doxygen 处理这些成员的文档 block ,所以 EXTRACT_PRIVATE 不是一个选项,即使如果使用像 \cond ...\endcond 这样的条件 block 。
我找到了一个 example可能有帮助的东西。它使用 INPUT_FILTER 配置变量有效地针对一些标记为私有(private)的成员,并在将文件提供给 doxygen 之前将它们的声明更改为公共(public)。不幸的是,这并不完全适用于我的情况,因为从技术上讲,该方法已经公开。
感谢您的帮助。
最佳答案
我也遇到了这个问题。一种解决方案,虽然相当难看,是在 Doxyfile 中设置 PREDEFINED
选项,并使用 #ifdef
预处理器指令在 Doxygen 生成时实际将成员函数添加到派生类文档。
例如,Doxyfile 包含:
PREDEFINED = _DOXYGEN_
源可以定义如下:
class A {
public:
void methodOne();
}
class B : private A {
public:
#ifdef _DOXYGEN_
/** Brief description.
*/
void methodOne();
#endif
using A::methodOne;
}
这很糟糕有几个原因,但最糟糕的部分是必须从基类复制函数声明,因此如果该声明发生变化,您需要记住更新派生类文档。
这是我想到的记录此类声明的唯一方法,因为 Doxygen 不支持此功能。
关于c++ - 多氧 C++ : document privately inherited members exposed by the "using" declaration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421785/