Partager via


Avertissement C6390

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.