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); |