class foo {
template< class T > void bar( T );
template<> void bar( int );
};

上の二つ目の bar は特殊化か、それともオーバーロードか。
ちなみに下はオーバーロード。

class foo {
void bar( int );
template< class T > void bar( T );
};