considérez le modèle de classe suivant :
template <class T>
class MyClass
{
void MyFunc();
};
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
Je dois ajouter une autre fonction MyFunc2 qui accepte un argument de modèle supplémentaire T2 c'est à dire,
template <class T>
class MyClass
{
void MyFunc();
template <class T2>
static void MyFunc2(T2* data);
};
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
template <class T, class T2>
void MyClass<T>::MyFunc2(T2* pData)
{
//...implementation goes here
}
J'utilise le compilateur VS 2008. J'obtiens l'erreur :
error C2244: unable to match function definition to an existing declaration
À quoi devraient ressembler la définition et la déclaration de la fonction dans ce cas.