Bonsoir,
Suite à la lecture du tutoriel d'initiation à la méta programation de Laurent, j'ai voulut ecrire une structure template pour boucler sur une fonction. Je me suis donc dit, si je veut pouvoir choisir la fonction, il faudrait que je done un pointeur de fonction à ma tructure, donc j'ai voulut faire :
Comme vous vous en doutez, si je poste ici c'est que ca ne fonctione pas
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 template <class Ptr, int Start, int End> struct For { static void Do() { Ptr(); For<Ptr, Start, End>::Do(); } }; template <class Ptr, int N> struct For<Ptr, N, N> { static void Do(){} }; //Une fonction de teste inline void tst () { std::cout << "tst\n"; } //Un apelle For<tst, 1, 4>;
Donc, j'en suis venu à me demander si j'aurais commit une erreur de syntaxe, ou le cas contraire si le compilateur pouvais ou non considèrer un pointeur de fonction comme connu à la compilation?
Partager