Condividi tramite


Avviso del compilatore (livello 1) C5033

'storage-class-keyword' non è più una classe di archiviazione supportata

Le parole chiave della auto classe di archiviazione e register sono deprecate o rimosse dal linguaggio C++.

Osservazioni:

Visual Studio 2010 e versioni successive: in C++11 la auto parola chiave non è più un identificatore di classe di archiviazione C++ e la register parola chiave è deprecata.

Visual Studio 2017 versione 15.7 e successive: (disponibile in /std:c++17 modalità e versioni successive): la register parola chiave viene rimossa dal linguaggio C++ in C++17 e versioni successive.

Lo standard C++ definisce un significato originale e uno rivisto per la parola chiave auto. Prima di C++11, la auto parola chiave dichiara una variabile nella classe di archiviazione automatica , ovvero una variabile con durata locale. A partire da C++11, la auto parola chiave dichiara una variabile il cui tipo viene dedotto dall'espressione di inizializzazione nella relativa dichiarazione. Per garantire la compatibilità con le versioni precedenti, è possibile usare l'opzione del /Zc:auto compilatore per controllare il significato della auto parola chiave .

La register parola chiave è stata originariamente pensata come suggerimento al compilatore per inserire una variabile in un registro. La parola chiave è stata ignorata regolarmente dai compilatori. I compilatori controllano invece se le variabili vengono inserite nei registri per soddisfare le convenzioni di chiamata e i livelli di ottimizzazione. La register parola chiave è riservata nello standard per un uso futuro.

Esempio

// 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

Per risolvere questo problema, rimuovere la parola chiave dell'identificatore register di classe di archiviazione.

Vedi anche

Classe di archiviazione