Compilerwarnung (Stufe 1) C5033
"storage-class-Schlüsselwort (keyword)" ist keine unterstützte Speicherklasse mehr.
Die auto
und register
die Speicherklasse Schlüsselwort (keyword) wurden veraltet oder aus der C++-Sprache entfernt.
Hinweise
Visual Studio 2010 und höher: In C++11 ist die auto
Schlüsselwort (keyword) kein C++-Speicherklassenbezeichner mehr, und die register
Schlüsselwort (keyword) ist veraltet.
Visual Studio 2017, Version 15.7 und höher: (im /std:c++17
Modus und höher verfügbar): Die register
Schlüsselwort (keyword) 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 die auto
Schlüsselwort (keyword) eine Variable in der automatischen Speicherklasse, d. h. eine Variable mit lokaler Lebensdauer. Ab C++11 deklariert die auto
Schlüsselwort (keyword) 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üsselwort (keyword) zu steuern.
Die register
Schlüsselwort (keyword) war ursprünglich als Vorschlag für den Compiler gedacht, eine Variable in einem Register zu platzieren. Die Schlüsselwort (keyword) wurde von Compilern routinemäßig ignoriert. Stattdessen steuern Compiler, ob Variablen in Registern platziert werden, um Aufrufkonventionen und Optimierungsstufen zu erfüllen. Die register
Schlüsselwort (keyword) 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 den register
speicherklassifizierenden Schlüsselwort (keyword).