Bonjour,
Petite question technique : comment augmenter la portée d'une variable créée dans un bloc if/else ? Je crois savoir que cela n'est pas possible normalement.
Cependant, j'ai un code dans lequel, en fonction de variables je dois instancier une classe template.
Comme la classe template est ...template, il faut que j'écrive "en dur" les différentes options d'instantiations. Le soucis, c'est que la variable classe instantiée va beaucoup me servir par la suite. Elle sera d'ailleurs peut-être rangée comme attribut de classe.
Voici mon code, le problème sautera aux yeux :
Comment faire en sorte de récupérer la variable tour à la fin de ces conditions ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void function(){ CCavalier cavalier(1,1); if (NC == 4 && NL == 4) TSearch<4, 4> tour(cavalier); if (NC == 5 && NL == 5) TSearch<5, 5> tour(cavalier); if (NC == 5 && NL == 6) TSearch<5, 6> tour(cavalier); if (NC == 6 && NL == 6) TSearch<6, 6> tour(cavalier); if (NC == 7 && NL == 7) TSearch<7, 7> tour(cavalier); if (NC == 8 && NL == 8) TSearch<8, 8> tour(cavalier); // On aimerait utiliser le bon tour ici }
Je précise que je n'ai pas le choix par rapport aux templates, je suis obligé d'utiliser la classe template TSearch et donc d'écrire en dur les différentes possibilités d'instanciations.
Si vous avez des idées....
Partager