Avertissement C26495

La variable 'variable' n’est pas initialisée. Initialisez toujours une variable membre (type.6).

Notes

Une variable membre n’est pas initialisée par un constructeur ou par un initialiseur. Vérifiez que toutes les variables sont initialisées à la fin de la construction. Pour plus d’informations, consultez C++ Core Guidelines Type.6 et C.48.

Cette case activée est intra-procédurale. Chaque fois qu’il existe un appel de fonction à une fonction membre nonconst, l’case activée suppose que cette fonction membre initialise tous les membres. Cette heuristique peut entraîner des erreurs manquées et est en place pour éviter les faux résultats positifs. De plus, lorsqu’un membre est passé par une référence nonconst à une fonction, l’case activée suppose que la fonction initialise le membre.

Nom de l’analyse du code : MEMBER_UNINIT

Exemple

L’exemple suivant génère l’avertissement C26495, car la variable value membre n’est pas initialisée lorsqu’un MyStruct objet est créé.

struct MyStruct
{
    int value;
    MyStruct() {} // C26495, MyStruct::value is uninitialized
};

Pour résoudre le problème, vous pouvez ajouter une initialisation de classe à toutes les variables membres.

struct MyStruct
{
    int value{};  // empty brace initializer sets value to 0
    MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};

Voir aussi

C26494