Doxygen / C ++: ошибка с callgraph + шаблоном? - PullRequest
1 голос
/ 30 марта 2012

Я работаю с Ubuntu + Doxygen (+ GraphViz), и у меня возникла проблема с генерацией коллографов для шаблонного класса.

Вот мой тестовый код для документации:

#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
// ---------------------------------- //
// Doxygen callgraph OK
class Class1
{
    public:
        int f1() {return f2();}
        int f2() {return x;}
    protected:
        int x;
};
// ---------------------------------- //
// Doxygen callgraph OK
class Class2
{
    public:
        int f1();
        int f2();
    protected:
        int x;
};
int Class2::f1()
{
    return f2();
}
int Class2::f2()
{
    return x;
}
// ---------------------------------- //
// Doxygen callgraph OK
template<class T> class Class3
{
    public:
        T f1() {return f2();}
        T f2() {return x;}
    protected:
        T x;
};
// ---------------------------------- //
// Doxygen callgraph PROBLEM (no callgraph)
template<class T> class Class4
{
    public:
        T f1();
        T f2();
    protected:
        T x;
};
template<class T> T Class4<T>::f1()
{
    return f2();
}
template<class T> T Class4<T>::f2()
{
    return x;
}
// ---------------------------------- //
#endif // TEST_H_INCLUDED

Проблема в том, что Doxygen генерирует графы вызовов для f1 () и f2 () для Class1, Class2 и Class3, но ничего для Class4. У вас тоже есть эта проблема? Есть ли решение? Это проблема Doxygen или GraphViz?

Большое спасибо.

...