You must declare a specialization before any use of that combination of template arguments. The following examples declare specialized implementations of twice and sort.
template <> unsigned twice<unsigned>( unsigned original );
template <> sort<char*>( Array<char*> store );
You can omit the template arguments if the compiler can unambiguously determine them. For example:
template <> unsigned twice( unsigned original );
template <> sort( Array<char*> store );