La especialización de la plantilla de un solo método de la clase con plantilla con múltiples parámetros de plantilla

Básicamente estoy tratando de hacer lo que se discutió enLa especialización de la plantilla de un solo método de una clase con plantilla excepto que mi clase de clase tiene varios parámetros de plantilla 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
}

Esto funciona hasta ahora, pero ¿cómo defino una implementación especializada para un parámetro de plantilla? Intenté agregar esto:

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

pero el compilador se queja de "no se puede hacer coincidir la definición de la función con una declaración existente" (VC2010) para ese método / función.

Como una nota al margen: si especializo ambos parámetros de plantilla al mismo tiempo, funciona:

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

Pero eso no es lo que quiero hacer.

¿Alguna sugerencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta