Der Trick ist es dass man eben genau _nicht_ die Funktion aufruft bzw. sie nie aufgerufen wird. Sie ist gar nicht definiert. Aber trotzdem kommst Du ueber den Rueckgabewert an den Typ heran.
Ok, ein Beispiel:
template <class T> struct Helper { // hier kennst Du T, oder // T::const_iterator oder was das Herz // begehrt }; ...
Ok, ein Beispiel:
template <class T>
struct Helper
{
// hier kennst Du T, oder
// T::const_iterator oder was das Herz
// begehrt
};
...
template <class T>
T typeHelper(const T &);
-->
Helper<typeHelper(argumentDesMakros)> foo
klingelts? ; - )
Ansonsten lass Dich von Qt4 ueberraschen ; - )
> "Helper < typeHelper ( argumentDesMakros) > foo"
Das wird leider nicht funktionieren. "typeHelper(irgendein_typ)" ist nämlich kein Typ! Es ist ein Funktionsaufruf.
Man muss in der Tat alles innerhalb von Hilfsfunktionen erledigen.