Upozornění kompilátoru (úroveň 1) C5033
'storage-class-keyword' už není podporovaná třída úložiště.
register
Klíčová auto
slova třídy úložiště jsou zastaralá nebo odebraná z jazyka C++.
Poznámky
Visual Studio 2010 a novější: V jazyce C++11 auto
už klíčové slovo není specifikátorem třídy úložiště C++ a register
klíčové slovo je zastaralé.
Visual Studio 2017 verze 15.7 a novější: (dostupné v /std:c++17
režimu a novější): Klíčové register
slovo se odebere z jazyka C++ v C++17 a novějších standardech.
Standard jazyka C++ definuje původní a revidovaný význam pro auto
klíčové slovo. Před C++11 auto
klíčové slovo deklaruje proměnnou v automatické třídě úložiště; to znamená proměnnou, která má místní životnost. Počínaje jazykem C++11 klíčové slovo deklaruje proměnnou, auto
jejíž typ je odvozen z inicializačního výrazu v jeho deklaraci. Kvůli zpětné kompatibilitě můžete pomocí /Zc:auto
možnosti kompilátoru řídit význam klíčového auto
slova.
Klíčové register
slovo původně znamenalo jako návrh kompilátoru umístit proměnnou do registru. Klíčové slovo bylo rutinně ignorováno kompilátory. Místo toho kompilátory určují, jestli jsou proměnné umístěny v registrech, aby vyhovovaly konvencím volání a úrovním optimalizace. Klíčové register
slovo je vyhrazeno ve standardu pro budoucí použití.
Příklad
// 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
Pokud chcete tento problém vyřešit, odeberte klíčové slovo specifikátoru register
třídy úložiště.