我在绘制协作图时试图让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类?