我正在研究奇妙的递归模板模式(CRTP),并希望为我的派生类生成协作图。当我在项目上运行doxygen时,我得到了如下的图表:
以下是更简单的示例:
生成这个:
我在这里限制了图的最大深度。但我仍然不喜欢重复的左分支。有没有可能忽略其中一个节点(objective_barrier或objective_barrier<objective_dense...>),或将它们合并在一起?
编辑: 非默认的doxygen设置:
# Difference with default Doxyfile 1.8.17
EXTRACT_ALL = YES
RECURSIVE = YES
UML_LOOK = YES
TEMPLATE_RELATIONS = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
DOT_CLEANUP = NO
以下是更简单的示例:
template <typename Derived>
class A_
{
void foo()
{
static_cast<Derived*>(this)->foo();
}
};
class B_ : public A_<B_>
{
void foo()
{
}
};
生成这个:
doxygen -x
),以便我们可以测试一些东西。 - albertHAVE_DOT=YES
,或者这是一个系统,在这个系统中,执行文件已经被分发/打包人员通过设置其他默认值而不是标准的doxygen默认值进行了操作(标准的doxygen默认值为HAVE_DOT=NO
)。注意:这不是你的错,设置HAVE_DOT=YES
也很容易。你可能还应该看一下HAVE_DOT=NO
和单独的情况,其中TEMPLATE_RELATIONS=NO
(虽然可能会产生其他对你不想要的影响)。 - albert