Bonjour � tous,

Je me retrouve dans cette situation ci :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
 
template struct Test<int A, int B>
{
   static void run();
};
 
template<> struct test<0, 0> { /* code spécifique */ };
template<> struct test<0, 1> { /* code spécifique */ };
template<> struct test<1, 0> { /* code spécifique */ };
template<> struct test<1, 1> { /* code spécifique */ };
Les valeurs de A et B sont connues et comprises entre 0 et 5.

Mon soucis c'est qu'�tant donn� que je suis dans un mode webservice, les valeurs A et B sont pass�es par l'utilisateur du service en cha�ne de caract�res que j'aurais pr�alablement pars�.

Je me retrouve donc avec une fonction :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
 
void run(int iA, int iB);
Dont le contenu doit appeler :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
 
Test<iA, iB>::run();
Bien �videmment �a ne fonctionne pas �tant donn� que les param�tres iA et iB ne sont pas constants.

Alors je cherche une solution pas trop d�gueulasse pour pallier contourner cette erreur.

Par exemple g�n�rer des fonctions de ce type, via probablement des macros ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
void run_test_0_0()
{
    Test<0, 0>::run();
}
Ce qui serait bien c'est que ces fonctions soient g�n�r�es automatiquement, parce que aujourd'hui les valeurs vont de 0 � 5, mais demain �a pourra aller jusqu'� 10, 20, 30, et �a va devenir compliqu� de g�n�rer cette "matrice" de fonction.

J'ose croire qu'� la compilation, en utilisant macro et template r�cursif, on peut faire quelque chose du genre "GenerateFunctions<5, 5>" et que �a g�n�re l'ensemble plut�t que le faire (et surtout le maintenir) � la main ?

Merci d'avance pour vos r�ponses,

A bient�t