前述のようなテンプレート引数の組み合わせを使用するには、その前に特殊化を宣言しなければなりません。次の例は twice と sort の特殊化された実装を宣言しています。
template <> unsigned twice<unsigned>( unsigned original );
template <> sort<char*>( Array<char*> store );
コンパイラがテンプレート引数を明確に確認できる場合には、テンプレート引数を省略することができます。次にその例を示します。
template <> unsigned twice( unsigned original );
template <> sort( Array<char*> store );