Generate collaboration graphs without CRTP-recursion with dot/Doxygen

Viewed 55

I'm working on Curiously Reccuring Template Patterns (CRTP), and want to generate collaboradion diagrams for the derived classes that I have. When I run doxygen on my project, I get diagrams like these:

enter image description here

Here I have constrained the maximum depth of the graph. But I still don't like the repetitious left branch. Is it possible to ignore one of these nodes (objective_barrier or objective_barrier<objective_dense...>), or to fuse them together?

Edit: Non-default doxygen-settings:

# 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

The following simpler example:

template <typename Derived>
class A_
{
    void foo()
    {
        static_cast<Derived*>(this)->foo();
    }
};

class B_ : public A_<B_>
{
    void foo()
    {

    }
};

Produce this:

enter image description here

1 Answers

As mentioned by albert it is possible to disable template relations:

TEMPLATE_RELATIONS=NO

Which leads to the following graph:

enter image description here

Related