>>626
正にそういうことがやりたいです。

#include<cstdio>
template<typename T, class M>struct A{void foo();};

template<typename T, class M>
void A<T, M>::foo(){std::printf("foo\n");}

template<class M>
void A<int, M>::foo(){std::printf("int foo\n");}

//template<>
//void A<int, int>::foo(){std::printf("int foo\n");}

int main(){
A<int*, int> c;
A<int, int> d;
c.foo();
d.foo();
}

こうするとエラーなんですよね。コメントアウトしてるところは大丈夫なんですが。