Typ herausfinde
-
Angenommen jemand mach ein typedef, z.B. so
typedef int Index;
Wie kann ich dann herausfinden was für ein Typ Index ist?
-
Wann herausfinden? Zur Entwicklungszeit sagt dir das deine IDE, zu Runtime z.B.
typeid.
-
Im Header nachschauen!

Oder meinst du sowas wiedecltype?
-
Wer ist 'ich'?
Du selber: Die entsprechende Zeile (mit Hilfe deiner IDE) finden und lesen.
Den Compiler kann man sowas zur Übersetzungszeit gut durch Überladungen fragen.
Dein Programm zur Laufzeit kann type_info benutzen.
-
HändyÄndy schrieb:
Wie kann ich dann herausfinden was für ein Typ Index ist?
Wozu brauchst du das? Entweder werden die die Objekte des besagten Typs dir von dem geliefert, das auch das Typedef selbst liefert (framework, Bibliothek etc.), wie z.B. die Iteratoren der Standardcontainer. Oder die Typen sind offensichtlich bzw. haben offensichtliche Konvertierungen von/zu bekannten Typen, wie z.B. dein Index (da solltest du mit einem unsigned int immer zurecht kommen). In beiden Fällen brauchst du nicht wissen, was hinter dem Typedef wirklich steckt,
-
Okay, ich frage mich ob es ein Methode gibt die sowas hier macht:
cout << "Der Typ ist " << ermittleTyp(Index) << endl;
Ausgabe wäre dann zB
Der Typ ist intKann man das irgendwie machen?
-
Wenn Du Glück hast, dann geht folgendes:
#include <typeinfo> //... std::cout "Der Typename ist: " << typeid(a).name() << std::endl;Muss aber nicht unbedingt funktionieren (tut es aber in der Regel).