c – 如何让Doxygen忽略继承关系?

前端之家收集整理的这篇文章主要介绍了c – 如何让Doxygen忽略继承关系?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在绘制协作图时试图让Doxygen忽略继承关系.

假设我的类定义如下所示:

class Derived : public Base
{
  int x;
  int y;
  int z;
}

现在,当我运行Doxygen时,我不希望在生成的协作图中看到Base类.

乍一看,似乎最干净的方法是在我的Doxyfile中使用EXCLUDE_SYMBOLS指令.特别:

EXCLUDE_SYMBOLS = Base

但是,我发现这不起作用:Base类仍然显示在Derived的协作图中.我已经在Doxygen 1.8.6和1.8.11以及基本通配符的不同排列(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忽略我的Base类?

解决方法

如果我没有弄错的话,EXCLUDE_SYMBOLS会阻止Doxygen为排除的符号生成文档,但它不会隐藏它们.这意味着Doxygen不会为您的Base类生成文档,但它仍会将其作为Derived的基类提及,就像Derived继承自外部库提供的类一样,库提供的类的名称也是如此出现在协作图中.

猜你在找的C&C++相关文章