Doxygen / C ++:调用图+模板的错误?

时间:2012-03-29 20:33:28

标签: c++ templates doxygen

我使用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为Class1,Class2和Class3生成f1()和f2()的调用图,但对Class4没有任何内容。你也有这个问题吗?有什么解决方案吗?这是Doxygen还是GraphViz的问题?

非常感谢。

0 个答案:

没有答案