Funktionstemplates

Mögliche Strategien zur Typumwandlung (1/4)

Unser obiges Problem läßt sich auf verschiedene Weise lösen. Dabei haben alle Lösungsstrategien gewisse Probleme, die auch kurz aufgezeigt werden.

Erzeugung einer expliziten Funktions-Deklaration

In unserem Beispiel hätten wir noch eine zusätzliche Funktions-Deklaration einbauen könen:

 
  int max(int, int);  

Damit hätte der Compiler eine Möglichkeit gehabt eine überladene Funktion gemäß der Auflösungsstrategie 3 zu finden und diese zu benutzen. Der letzte Aufruf wäre dann umgewandelt worden:

 
  x = max(y, o);   // max(int, int(short)) implizite Typeumwandlung  

Eine Definition der Funktion ist nicht notwendig, da sie aus dem Template generiert werden kann (Trotzdem ist es keine klassische Template-Funktion). Nachteil ist, daß man wissen muß, welche impliziten Typumwandlungen durchgeführt werden sollte.