Surcharge d'une fonction template

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation des templates de fonctions - Index

L'exemple précédent est appelé template de fonction (ou fonction générique). L'instanciation spécifique d'un template de fonction est appelée fonction template. L'instanciation d'une fonction template se produit lorsque vous prenez l'adresse de la fonction, ou lorsque vous appelez la fonction par le biais de types de données définis (non génériques). Pour remplacer la fonction template d'un type spécifique par une fonction non template :



 #include <string.h>
 char *max(char *x, char *y){
    return(strcmp(x,y) > 0) ? x : y;
 }



Si vous appelez la fonction avec des arguments chaîne, elle sera exécutée à la place de la fonction template automatique. Dans ce cas, vous évitez une comparaison inutile entre deux pointeurs en appelant la fonction.

Seuls les arguments triviaux sont convertis à partir de fonctions template générées par le compilateur.

Les types d'arguments d'une fonction template doivent utiliser tous les arguments formels du template. Si ce n'est pas le cas, il est impossible d'obtenir les valeurs réelles des arguments template non utilisés en appelant la fonction.