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 vérification est intra-procédurale. Chaque fois qu’il existe un appel de fonction à une fonction membre nonconst, la vérification 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, la vérification 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
};