我使用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的问题?
非常感谢。