Freigeben über


Compilerwarnung (Stufe 1) C5033

"Storage-class-keyword" ist keine unterstützte Speicherklasse mehr.

Die auto Schlüsselwörter der register Speicherklasse sind veraltet oder aus der C++-Sprache entfernt worden.

Hinweise

Visual Studio 2010 und höher: In C++11 ist das auto Schlüsselwort kein C++-Speicherklassenbezeichner mehr, und das register Schlüsselwort ist veraltet.

Visual Studio 2017, Version 15.7 und höher: (im /std:c++17 Modus und höher verfügbar): Das register Schlüsselwort wird aus der C++-Sprache in C++17 und höher entfernt.

Der C++-Standard definiert eine ursprüngliche und eine überarbeitete Bedeutung für das auto-Schlüsselwort. Vor C++11 deklariert das auto Schlüsselwort eine Variable in der automatischen Speicherklasse, d. h. eine Variable mit lokaler Lebensdauer. Ab C++11 deklariert das auto Schlüsselwort eine Variable, deren Typ vom Initialisierungsausdruck in der Deklaration abgeleitet ist. Aus Gründen der Abwärtskompatibilität können Sie die /Zc:auto Compileroption verwenden, um die Bedeutung des auto Schlüsselworts zu steuern.

Das register Schlüsselwort war ursprünglich als Vorschlag für den Compiler gedacht, eine Variable in einem Register zu platzieren. Das Schlüsselwort wurde von Compilern routinemäßig ignoriert. Stattdessen steuern Compiler, ob Variablen in Registern platziert werden, um Aufrufkonventionen und Optimierungsstufen zu erfüllen. Das register Schlüsselwort ist im Standard für die zukünftige Verwendung reserviert.

Beispiel

// c5033.cpp
// compile by using: cl /c /std:c++17 c5033.cpp

register int value; // warning C5033: 'register' is no longer a supported storage class

Um dieses Problem zu beheben, entfernen Sie das Schlüsselwort für den register Speicherklassenbezeichner.

Siehe auch

Speicherklasse