Bonjour,
J'aimerai savoir si il existe un moyen pour que certaines valeurs spécifiques de template puissent appeler des versions personnalisées de methodes ?
Je m'explique, j'aimerais obtenir quelque chose ressemblant à ceci :
Certaines valeurs remarquables de S permettent d'accelerer le calcul, je voudrais donc écrire la fonction calcul pour ces valeurs spécifiques de S et laisser la génération automatique de code gérer les autres cas.
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 template <int S> class toto { int calcul(int a, int b); }; int calcul<3>(int a, int b) { /* calcul pour S = 3 */ } int calcul<4>(int a, int b) { /* calcul pour S = 4 */ } int calcul<S>(int a, int b) { /* calcul pour toutes les autres valeurs de S */ }
Je pourrais bien évidemment simplement utiliser des conditions, mais je suis à la recherche maximum de vitesse et un embranchement conditionnel me fait perdre environ 10% au temps d'execution.
Merci d'avance.
Partager