Bonsoir,

Petit problème pour utiliser un pointeur de fonction membre template. VOilà le code qui me pose problème :

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
 
template <class Derived> class FSM {
 
    template <
        class Event,
        int NextState,
        void (Derived::*action)(const Event&),
        bool (Derived::*guard)(const Event&) = &Derived::true_ //<=Ligne qui pose problème
    >
    struct transition {
        //...
    };
 
    ...
};
 
class MyFSM : public FSM<MyFSM> {
 
//...
 
    template <class Event>
    bool true_(const Event& e) {return true;}
 
};
Lors de la compilation, j'ai l'erreur suivante à la ligne qui pose problème :
incomplete type MyFSM used in nested name specifier

Je pense que cela vient du fait que ma fonction true_ est une fonction template et qu'il faut le spécifier au compilo, malheureusement je ne sais pas si cela est possible, et si oui quelle est la syntaxe à utiliser.

Merci d'avance :p