我试图让 Doxygen 在绘制协作图时忽略继承关系。
假设我的类定义如下所示:
class Derived : public Base
{
int x;
int y;
int z;
}
现在,当我运行 Doxygen 时,我不想在生成的协作图中看到基类。
乍一看,最简洁的方法似乎是在我的 Doxyfile 中使用 EXCLUDE_SYMBOLS
指令。具体来说:
EXCLUDE_SYMBOLS = Base
但是,我发现这不起作用:Base 类仍然出现在我的 Derived 协作图中。我在 Doxygen 1.8.6
和 1.8.11
上都试过了,使用不同的 Base 通配符排列(Base*、*as* 等),行为相同。 Base 类总是出现在我的协作图中。
公平地说,我找到了 2 个解决方法,但它们都涉及将条件语句放入我的代码中。为了完整起见,我将在此处包括两者:
第一种解决方法:
class Derived :
#ifndef DOXYGEN_SHOULD_SKIP_THIS
public Base
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
{
...
}
然后确保在 Doxyfile 中设置了以下两个指令:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
ENABLE_PREPROCESSING = YES
第二种解决方法:
class Derived :
/// @cond DOXYGEN_IGNORE
public Base
/// @endcond
{
...
}
明确地说,这些解决方法确实让 Doxygen 忽略了继承关系,但我不想不必要地污染我的代码库,特别是如果有更好/更清洁的方法来实现我的目标。
我的问题是 -- 为什么 EXCLUDE_SYMBOLS
不让 Doxygen 在绘制协作图时忽略我的基类?
最佳答案
如果我没记错的话,EXCLUDE_SYMBOLS
会阻止 Doxygen 为排除的符号生成文档,但它不会隐藏它们。这意味着 Doxygen 不会为您的 Base
类生成文档,但它仍会将其作为 Derived
的基类提及,就像 Derived
> 继承自外部库提供的类,库提供的类的名称将出现在协作图中。
关于c++ - 如何让 Doxygen 忽略继承关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312241/