Share via


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ě.

Viz také

Třída úložiště