typename
Nach oben zu Schlüsselwörter alphabetisch - Index
Kategorie
C++-spezifische Schlüsselwörter
Syntax 1
typename bezeichner
Syntax 2
template < typename bezeichner > class bezeichner
Beschreibung
Verwenden Sie Syntax 1 für Typen, die noch nicht definiert sind. Siehe Beispiel 1.
Verwenden Sie Syntax 2 statt des Schlüsselworts class in der Deklaration eines Templates. Siehe Beispiel 2.
Hinweis: Wird das Schlüsselwort typename zusammen mit Templates verwendet, gibt der Compiler nicht immer einen Fehler aus, wenn der ANSI-Standard dieses Schlüsselwort erfordert. Der Compiler gibt das Fehlen des Typnamens an, wenn er mit der Befehlszeilenoption -A aufgerufen wird. Sehen Sie sich als Beispiel folgenden Code an:
#include <stdio.h>
struct A{ typedef int AInt; };
Hinweis: Der Compiler gibt das Fehlen des Typnamens an, wenn er mit der Befehlszeilenoption -A aufgerufen wird.
Hinweis: Compilieren mit: bcc32 (keine Option -A)
bc++bcc32 test.cpp
Hier wird kein Fehler generiert. Der Compiler sollte nicht annehmen, dass AInt ein typename ist, er macht dies aber, wenn -A nicht angegeben wird.
Hinweis: Compilieren mit: bcc32 (Option -A)
bc++bcc32 -A test.cpp
Dies führt zu folgendem Ergebnis:
Fehler E2089 47071.cpp 7: Bezeichner 'AInt' darf keinen Typqualifizierer besitzen
Fehler E2303 47071.cpp 7: Typname erwartet
Fehler E2139 47071.cpp 7: Deklaration fehlt ;
Beide Ergebnisse sind wie erwartet.