Derleyici uyarısı (düzey 1) C5033
'storage-class-keyword' artık desteklenen bir depolama sınıfı değil
auto
ve register
depolama sınıfı anahtar sözcükleri kullanım dışı bırakıldı veya C++ dilinden kaldırıldı.
Açıklamalar
Visual Studio 2010 ve üzeri: C++11'de anahtar auto
sözcük artık C++ depolama sınıfı tanımlayıcısı değildir ve register
anahtar sözcük kullanım dışıdır.
Visual Studio 2017 sürüm 15.7 ve üzeri: (mod ve sonraki sürümlerde /std:c++17
kullanılabilir): register
Anahtar sözcük C++17 ve üzeri standartlarda C++ dilinden kaldırılır.
C++ standardı, anahtar sözcük için auto
özgün ve düzeltilmiş bir anlamı tanımlar. C++11'den önce anahtar auto
sözcüğü otomatik depolama sınıfında bir değişken bildirir; yani yerel ömrü olan bir değişkendir. C++11'den başlayarak anahtar sözcüğü, auto
türü bildirimindeki başlatma ifadesinden çıkarılmış bir değişken bildirir. Geriye dönük uyumluluk için derleyici seçeneğini kullanarak /Zc:auto
anahtar sözcüğün auto
anlamını denetleyebilirsiniz.
Anahtar register
sözcüğü başlangıçta derleyiciye bir değişkeni bir yazmaca yerleştirme önerisi olarak amaçlandı. Anahtar sözcüğü derleyiciler tarafından düzenli olarak yoksayıldı. Bunun yerine, derleyiciler değişkenlerin çağrı kurallarını ve iyileştirme düzeylerini karşılamak için yazmaçlara yerleştirilip yerleştirilmeyeceğini denetler. Anahtar register
sözcük, gelecekte kullanılmak üzere standart olarak ayrılmıştır.
Örnek
// 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
Bu sorunu düzeltmek için depolama sınıfı tanımlayıcı anahtar sözcüğünü kaldırın register
.