Wann ist ein typedef sinnvoll?
-
Hallo! Wann ist ein typedef sinnvoll? Ich würde sagen, wenn man einen Typ 2 oder mehrmals braucht. Lieg ich da richtig?
-
in einer schleife ein typedef für ein int find ich auch etwas übertrieben...
-
ein typedef ist dazu da einen typen
a) zu vereinfachen
zB aus
myns::intern::data::foo<bla, blup, wau>
internFoo
zu machen.
b) um den echten typen zu 'verstecken'
zB
int
wird zu
int32
um beim portieren auf andere platformen nur noch das typedef ändern zu müssen um wieder einen 32bit integer zu bekommen.
c) information hiding
zB bei einer klasse vector
da gibt es vector<T>::iterator
ob dieser iterator eine Klasse ist, oder ein Zeiger oder ein junger Hund ist egal. Das verhalten ist festgelegt, was intern passiert ist unwichtig.weiter Punkte fallen mir jetzt nicht ein
-
statt
void(*set_new_handler(void(*)()))();//ungetestet
schreibe man
typedef void voidfunc(); voidfunc* set_new_handler(voidfunc*);
-
bei template meta programmierung, typedefs bringen da ein wenig luft zwischen die ganzen <> :: usw.
-
Man sollte IMHO aber ein wenig sparsam mit typedefs sein weil man sonst den Wald vor lauter Bäumen nicht sieht...