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 :
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>;
Comme vous vous en doutez, si je poste ici c'est que ca ne fonctione pas

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?