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.