Anzeigen: Delphi C++
Anzeigeeinstellungen

auto

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Das Schlüsselwort auto wurde für den C++11-Standard neu definiert. Daher unterstützt C++Builder zwei verschiedene Definitionen von auto, die vom verwendeten C++-Compiler bestimmt werden:

  • C++-Anwendungen für 32 Bit verwenden BCC32, das C++0x unterstützt
  • C++-Anwendungen für 64 Bit verwenden BCC64, das C++11 unterstützt

Auf dieser Seite sind beide Definitionen von auto beschrieben.

Inhaltsverzeichnis

C++-Anwendungen für 32 Bit

Kategorie

Speicherklassenspezifizierer

Syntax

[auto] <data-definition> ;

Beschreibung

Mit dem Modifizierer auto können Sie für eine lokale Variable eine lokale Lebensdauer definieren.

Da dies ist für lokale Variablen die Vorgabe ist, wird dieser Modifizierer selten angegeben.

Beispiel

 void f() {
 	// valid BCC32, invalid BCC64
 	auto int x;
 }

C++-Anwendungen für 64 Bit

Kategorie

Typ-Bezeichner

Syntax

[auto] <variable_name> = <initializer_expression> ;

Beschreibung

Da der C++-Compiler (BCC64) für 64 Bit den C++11-Standard unterstützt, hat das Schlüsselwort auto in C++-Anwendungen für 64 Bit eine andere Bedeutung und wird anders verwendet. BCC64 interpretiert auto als einfachen Typbezeichner, dessen Semantik vom Initialisierungsausdruck abgeleitet wird.

Beispiel

 int f() {
 	return 1;
 }
 
 int _tmain(int argc, _TCHAR* argv[]) {
 	auto x = f();
 	return 0;
 }

In diesem Beispiel wird der Typ der Variable x von ihrem Initialisierungsausdruck abgeleitet: f(). Deshalb hat x den Typ int, den von f() zurückgegebenen Typ.

Probleme bei der Codemigration

Wenn BCC64 auf alte auto-Syntax trifft (d.h., auto wird als Speicherklassenspezifizierer verwendet), wird die folgende Warnung ausgelöst:

[bcc64 Warning] File1.cpp(12): 'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases.

Siehe auch

In anderen Sprachen