Hello,
Soit un template :
La façon habituelle de restreindre l'instanciation à un nombre données de types (ici, A et B) et de ne pas fournir d'implémentation générique, et de spécialiser pour chaque classe privilégiée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 template <typename T> class MyClass { ... };
Si le code est commun aux deux spécialisations (nonobstant le type fourni en argument template), on se retrouve avec de la duplication de code. Il y a-t-il moyen de faire autrement ?
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 template<> class MyClass; template<> class MyClass<A> { ... }; template<> class MyClass<B> { ... };
J'essaye de bidouiller avec C++11, mais je l'impression que ça en va pas être très propre...
Partager