L'exemple le plus connu c'est le max
Le "template" générique
[codebox]template <typename T>
inline const T & max(const T & a,const T & b )
{ return (a>b ? a : b ); }[/codebox]
Le code qui appelle.
[codebox]int ix = 1, iy = 2;
max(ix,iy);
double dx = 1.1, dy = 2.2;
max(dx,dy);[/codebox]
A la compilation, ça va donc créer les fonctions associées à max pour int et pour double, par exemple.
Ca remplace grossièrement du copier coller pour avoir un seul code généralisé, qui sera dupliqué non pas par toi mais par l'éxécution.