Bonjour.

J'ai un problème avec Doxygen : celui-ci n'arrive pas à me sortir de callgraph d'un truc très simple et je ne comprends pas pourquoi. Je travaille sur Ubuntu avec Doxygen 1.7.4 et GraphViz

Voilà le code qui me sert d'exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#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
Le problème est que Doxygen n'arrive pas à produire le callgraph de f1() et de f2() de la Class4 car apparemment il ne comprend pas la syntaxe Class4<T>:: .

Est-ce un bug ou est-ce que j'ai zappé quelque chose ? Si cela est-un bug arrivez vous à le reproduire ?

Merci beaucoup