Especialização em modelo de um único método da classe modelo com vários parâmetros de modelo

Eu estou basicamente tentando fazer o que foi discutido emEspecialização em modelo de um único método de uma classe modelo exceto que o meu TClass tem vários parâmetros de modelo como este:

template < class KEY, class TYPE >
class TClass
{
public:
    :
    void doSomething(KEY * v);
    :
};

template < class KEY, class TYPE >
void TClass<KEY, TYPE>::doSomething(KEY * v) 
{
    // do something
}

Isso funciona até agora, mas como defino uma implementação especializada para um parâmetro de modelo? Eu tentei adicionar isto:

template < class TYPE >
void TClass<int, TYPE>::doSomething(int * v)
{
    // do something if KEY is int
}

mas o compilador reclama sobre "incapaz de corresponder a definição de função a uma declaração existente" (VC2010) para esse método / função.

Como um sidenote: Se eu especializar ambos os parâmetros do modelo ao mesmo tempo, ele funciona:

template < >
void TClass<int, char>::doSomething(int * v)
{
    // do something if KEY is int and TYPE is char
}

mas não é isso que eu quero fazer.

Alguma sugestão?

questionAnswers(2)

yourAnswerToTheQuestion