Es ist nicht möglich nur für den Rückgabewert einen Templatetyp zu verwenden, da Funktionen nicht anhand ihres Rückgabewertes unterschieden werden können.
Die folgende Definition ist daher unzulässig:
template <class T1, class T2, class T3> inline T1 max(T2 a, T3 b) { return a > b ? a : b; } // Fehler: T1 nicht benutzt!