On peut particulariser certaines instances (aussi bien pour un patron de classe que pour un patron de fonction) :
template <class T> class Tab{ T* tab; public: //... int cmp(Tab &t){ // comparaisons ... }; }; class Tab<char>{ // remplace une instance Tab<char> char* tab; public: //... int cmp(Tab<char> &t){ return strcmp(tab,t.tab); } }; template<class T> sort(vecteur<T> &); // patron de fonction vecteur<char *> sort(vecteur<char *> &t){ // un code spécial... }