Il est possible que, pour certains types de données particuliers, les méthodes patron générales ne soient pas applicables. Dans ce cas, il faut spécialiser les méthodes patron afin de prendre en compte ces cas particuliers. Cette spécialisation est équivalente à une surcharge de fonction.
La surcharge de la méthode patron se fait en indiquant explicitement le type du paramètre de type. Le C++ se chargera d'appeler la méthode redéfinie pour ce type particulier et la méthode patron générale pour les autres.
Si l'on désire pouvoir stocker dans la classe liste des chaînes de caractères, il est nécessaire de spécialiser certaines méthodes.