Partager via


Avertissement du compilateur (niveau 1) C5033

' storage-class-mot clé' n’est plus une classe de stockage prise en charge

La auto classe de stockage et register les mot clé ont été déconseillées ou supprimées du langage C++.

Notes

Visual Studio 2010 et versions ultérieures : en C++11, le auto mot clé n’est plus un spécificateur de classe de stockage C++ et le register mot clé est déconseillé.

Visual Studio 2017 version 15.7 et ultérieure : (disponible en /std:c++17 mode et versions ultérieures) : le register mot clé est supprimé du langage C++ en C++17 et versions ultérieures.

Le standard C++ définit une signification originale et une autre révisée pour le mot clé auto. Avant C++11, la auto mot clé déclare une variable dans la classe de stockage automatique ; autrement dit, une variable qui a une durée de vie locale. À compter de C++11, l’mot clé déclare une variable dont le auto type est déduit de l’expression d’initialisation dans sa déclaration. Pour la compatibilité descendante, vous pouvez utiliser l’option du /Zc:auto compilateur pour contrôler la signification de la auto mot clé.

Le register mot clé était initialement destiné à suggérer au compilateur de placer une variable dans un registre. La mot clé a été régulièrement ignorée par les compilateurs. Au lieu de cela, les compilateurs contrôlent si les variables sont placées dans des registres pour satisfaire aux conventions d’appel et aux niveaux d’optimisation. Le register mot clé est réservé dans la norme pour une utilisation ultérieure.

Exemple

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

Pour résoudre ce problème, supprimez le register spécificateur de classe de stockage mot clé.

Voir aussi

Classe de stockage