typename

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

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.