template<class T, size_t N> using myarray = std::array<T, 2*N>;
としたときに、関数 hoge を
template<class T, size_t N> void hoge(myarray<T, N>);

template<class T, size_t N> void hoge(array<T, N>);
でオーバーロードすることってできますか?