Bonjour � tous,
Je me retrouve dans cette situation ci :
Les valeurs de A et B sont connues et comprises entre 0 et 5.
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 */ };
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 :
Dont le contenu doit appeler :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 void run(int iA, int iB);
Bien �videmment �a ne fonctionne pas �tant donn� que les param�tres iA et iB ne sont pas constants.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 Test<iA, iB>::run();
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 ?
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.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 void run_test_0_0() { Test<0, 0>::run(); }
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![]()
Partager