Avertissement du compilateur (niveau 4, désactivé) C5240
'attribute-string' : l’attribut est ignoré dans cette position syntaxique
Notes
L’avertissement C5240 se produit lorsqu’un ou [[maybe_unused]]
un [[nodiscard]]
attribut est trouvé dans la position syntactique incorrecte. Par exemple, l’attribut [[nodiscard]]
de cette position syntaxique s’applique à la decl-specifier-seq
fonction , et non à la fonction f
:
static [[nodiscard]] int f() { return 1; }
Avant Visual Studio 2019 version 16.10, le compilateur ignore silencieusement les utilisations d’un ou [[maybe_unused]]
d’un [[nodiscard]]
attribut dans une position syntaxique qui ne s’appliquait pas à la fonction ou à l’objet déclaré. Dans Visual Studio 2019 version 16.10 et ultérieure, le compilateur émet un avertissement de niveau 4 désactivé par défaut C5240 à la place. Pour plus d’informations sur l’activation de cet avertissement, consultez les avertissements du compilateur désactivés par défaut.
Exemple
L’exemple suivant montre comment l’avertissement 5240 peut se produire :
// c5240.cpp
// Compile using: cl /EHsc /W4 /std:c++17 /permissive- /c c5240.cpp
#pragma warning( default: 5240 )
static [[nodiscard]] int f() { return 1; } // C5240
Pour résoudre ce problème, déplacez l’attribut vers la position syntaxique correcte :
// c5240_fixed.cpp
// Compile using: cl /EHsc /W4 /std:c++17 /permissive- /c c5240_fixed.cpp
#pragma warning( default: 5240 )
[[nodiscard]] static int f() { return 1; } // OK
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour