Bonjour à tous,

J'ai une classe de ce style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
template<class T>
class CMyClass
{
public:
    void MethodA();
    void MethodB();
    void MethodC();
};
J'aimerai ne spécialiser que la méthode B pour T = std::string. Si je fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
template<>
void CMyClass<std::string>::MethodB()
{
 
}
J'obtiendrais 2 erreurs de link (une MethodA, l'autre pour MethodC).

Je peux passer par une seconde classe se chargeant du traitement de la MethodB (donc ne possédant qu'une fonction qu'appellerai MethodB de ma clase principale et la spécialiser), mais y aurai-t-il une autre solution ?

Merci beaucoup,

A bientôt