>>865
その程度ならSFINAEで何とかなりそうだが部分特殊化したいならクラステンプレートを作って処理を任せるしかない
template<typename T, typename U>
struct unko_impl {
static int f(T , U ) {…}
};

template<…> struct unko_impl<…, …> {
特殊化
};

template<typename T, typename U>
int unko(T &t, U &&u) {
return unko_impl<T, U>::f( forward<T>(t), forward<U>(u) );
}