Doxygen - 从外部记录的摘要继承文档 class

Doxygen - Inherit documentation from externally documented abstract class

我正在为我的 C++ class 编写文档,它继承自抽象 class,其文档已通过标记文件在外部提供。

我不想重写几个继承函数的文档,因为它只是抽象 parent 函数的 copy-paste。但是,在 Doxygen 配置中指定我的标记文件并启用 INHERIT_DOCS 后,继承的文档仍然不存在...

我是否遗漏了一些其他参数,或者这可能是 Doxygen 的限制?

使用 Doxygen 直接处理 parent 抽象 class 的头文件按预期工作(文档包含在 child class 中)。此外,在我的 child class 中删除继承函数的声明将在 "Functions inherited from ParentAbstractClass" 组中添加该函数(但显然不再编译)。

这是我的工作树:

<root>
    +- ParentAbstractClass/
    |    +- html/
    |    |- ParentAbstractClass.tag
    |    |- ParentAbstractClass.hpp
    +- ChildClass/
    |    +- html/
    |    |- ChildClass.hpp
    |- Doxyfile_child

ParentAbstractClass.hpp的内容

/**
 * @brief Parent class
 */
class ParentAbstractClass{
public:
    /**
     * Inherited function
     * @param[in] arg: input argument
     */
    virtual void inheritedFunction(const int arg)=0;
};

ChildClass.hpp的内容

#include "ParentAbstractClass.hpp"

/**
 * @brief Child class
 */
class ChildClass : public ParentAbstractClass
{
public:
    // Following function should inherit the documentation from its parent
    virtual void inheritedFunction(const int arg); 
};

以及 Doxyfile_child 中的一些相关(我认为)选项:

OUTPUT_DIRECTORY       = ChildClass
INHERIT_DOCS           = YES
INLINE_INHERITED_MEMB  = NO
TAGFILES               = ParentAbstractClass/ParentAbstractClass.tag=../../ParentAbstractClass/html

我是 运行 Doxygen 1.8.14.

INHERIT_DOCS 在一个项目中工作。 在标记文件中,向外部项目发出信号,没有关于 "parent" 函数的信息。只要您添加:

/// \copydoc ParentAbstractClass::inheritedFunction(const int arg)

作为 ChildClass 中函数的文档,您将得到 "Implements ParentAbstractClass." 以及 ParentAbstractClass 中函数的引用。