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 :

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 */
}
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.

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.