Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Selon la norme C++, la valeur de 'this' n’est jamais null ; certains compilateurs optimisent cette extraction
Notes
Même si MSVC ne fait pas de telles optimisations, certains compilateurs optimisent les vérifications null. this Le code qui s’appuie sur null this peut déclencher un comportement inattendu lors de la compilation avec d’autres compilateurs. Cet avertissement permet de détecter ces problèmes de portabilité.
Nom de l’analyse du code : NO_NULLCHECK_FOR_THIS
Exemple
L’exemple suivant génère l’erreur C6390 :
struct X
{
void m()
{
if(!this) // Warning: According to the C++ standard, the value of 'this' is never null; some compilers will optimize this check out
return;
}
};
Pour résoudre ce problème, réécrire le code pour ne jamais appeler des fonctions membres non statiques sur des pointeurs Null.